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 ответов

28 просмотров

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

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
ну есть два варианта - наперёд подсчитать, сколько...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта