• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Задача

  • Автор темы Firiat
  • Дата начала
F

Firiat

Вот условие задачи : напечать строку вместе с точкой и вывести эту же строку только вместо точки должно стоять троеточие . только не получается .

Вот код программы :

#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
using namespace std;

int main()
{

char s[100];
char s1[100];
gets(s);
int k=0;
for (int i=0; i<strlen(s); i++)
{
if ((s=='.')&&(s[i+1]=='...')) continue;
s1[k]=s;
k++;
}
s1[k]=0;
cout << s1;
getch();
return 0;
}
 
I

ierofant

Разве существует символ '...'? Это три символа, сдаётся мне.

Вот мой рабочий код.
C++:
#include <iostream>
#include <string>

int main ()
{
std::string str;
std::cout << "Введите строку: ", std::cin >> str;
for (int pos = str.find ('.'); pos != -1 && pos < str.size (); pos = str.find ('.', pos))
{
str.insert (pos, "..");
pos += 3;
}
std::cout << "Отредактированная строка: " << str << std::endl;

return 0;
}
 
I

ierofant

Можно даже, в принципе, убрать второе условие в цикле. Оно и так предусмотрено в функции find.

C++:
#include <iostream>
#include <string>

int main ()
{
std::string str;
std::cout << "Введите строку: ", std::cin >> str;
for (int pos = str.find ('.'); pos != -1; pos = str.find ('.', pos))
{
str.insert (pos, "..");
pos += 3;
}
std::cout << "Отредактированная строка: " << str << std::endl;

return 0;
}
 
I

ierofant

Пришло в голову, что из-за пробелов могут быть проблемы, поэтому вот окончательная версия:

C++:
#include <iostream>
#include <string>

int main ()
{
std::string str;
std::cout << "Введите строку: \n";
std::getline (std::cin, str);
for (int pos = str.find ('.'); pos != -1; pos = str.find ('.', pos))
{
str.insert (pos, "..");
pos += 3;
}
std::cout << "Отредактированная строка: " << std::endl;
std::cout << str << std::endl;

return 0;
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!