170 похожих чатов

Ребят, как сделать так что бы замена работала? #include <iostream> #include <string> using

namespace std;
int main()
{
int n;
cin >> n;
char *s = new char[n];
for (int i = 0; i <= n; i++)
{
cin >> s[i];
if (s[i] == ".")
{
s[i] = "...";
}
}

delete []s;
return 0;

}
Нужно заменять символы точки в массиве на многоточие, и делать это именно с типом char

21 ответов

15 просмотров

а многоточие это сколько символов?

char *s = new char[n]; for (int i = 0; i <= n; i++)

Kostiantyn
?

Works flawlessly

Ну а как ты себе представляешь заменить точку на многоточие?

Kostiantyn- Автор вопроса
Gleb Pylypets
Ну а как ты себе представляешь заменить точку на м...

Ну может как-то так, но тоже не получается s[i] = '.'+'.'+'.';

Kostiantyn
Ну может как-то так, но тоже не получается ...

Смотрите, вы пришли к зубному. он вам удалил 1 зуб и на его место вставил 4.

🐈
Смотрите, вы пришли к зубному. он вам удалил 1 зуб...

Ну тут уже не 4 зуба, а один очень странный. Тут же просто по аски просуммируются коды точек

Kostiantyn
Ну может как-то так, но тоже не получается ...

попробуйте s[i]='…'; (не забудьте включить юникод)

Главный вопрос-то так и не решён: многоточие — это один символ или три точки?

Kostiantyn
Три точки

Если так сильно надо с массивом чаров, то почему просто не пройтись по исходной строке, посчитать количество точек n, выделить новый массив на size_of_initial_array + 2 * n + 1 элементов и по вполне очевидному алгоритмау не скопировать исходный массив в новый, не забывая добавлять дополнительные точки?

Kostiantyn
Три точки

Я обычно "по-питоновски" делаю, когда думать лень: // s — std::string if (s[i] == '.') { s = s.substr(0, i) + "..." + s.substr(i + 1); i += 2; }

Hvost 🦊♠️
Я обычно "по-питоновски" делаю, когда думать лень:...

Опять-таки, если не сказано, в каком именно контейнере хранить строку

Kostiantyn- Автор вопроса
Hvost 🦊♠️
Я обычно "по-питоновски" делаю, когда думать лень:...

Та в этом и проблеиа что нужно символьный массив, а не строка

Kostiantyn- Автор вопроса
Kostiantyn
char* s = new char[n];

ну есть два варианта - наперёд подсчитать, сколько там точек, чтобы понимать длину результата, либо расширять динамически как вектор.

Gleb Pylypets
ну есть два варианта - наперёд подсчитать, сколько...

Причем первый выглядит оптимальнее с точки зрения количества полезных аллокаций Ну и этот способ тут уже предложили. Дважды

Похожие вопросы

Обсуждают сегодня

Кстати, а я вот тут подумал. Допустим, у нас имеется цикл который выполняет огромное количество итераций, но мы хотим, чтобы какие-то действия исполнилось только один раз. В Я...
The Bird of Hermes
23
Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
28
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
анрей С какой целью зашёл?
КТ315
42
я часов 15 назад начал пытаться написать хоть что-то напоминающее ос и у меня есть проблема, которую я пытаюсь решить последние часов 5: есть крч 2 исходника с минимальным код...
Al1to
17
@not_fajox С какой целью зашёл?
КТ315
9
Короче получается только кнопки не поменять А кнопки вроде тоже слетают при редактировании не?
inc.
10
Кто нибудь из участников чата пишет на ассемблере под GNU/Linux?
Spiker01
24
коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Всем привет ребят! Мб кто-то сталкивался? adminСomponents .get("searchСomponents", use: searchComponents) .openAPI( summary: ...
Admin Adminov
2
Карта сайта