Задача

Тема в разделе "C/C++/C#", создана пользователем Firiat, 16 дек 2010.

  1. Firiat

    Firiat Well-Known Member

    Регистрация:
    19 окт 2010
    Сообщения:
    48
    Симпатии:
    0
    Вот условие задачи : напечать строку вместе с точкой и вывести эту же строку только вместо точки должно стоять троеточие . только не получается .

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

    #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;
    }
     
  2. ierofant

    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;
    }
     
  3. ierofant

    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;
    }
     
  4. ierofant

    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;
    }
     
Загрузка...
Похожие Темы - Задача
  1. Янчик
    Ответов:
    0
    Просмотров:
    486
  2. TrishaRay
    Ответов:
    1
    Просмотров:
    782
  3. elzim
    Ответов:
    0
    Просмотров:
    931
  4. ShaoKahn
    Ответов:
    1
    Просмотров:
    1.125
  5. eremin-sanek
    Ответов:
    3
    Просмотров:
    1.107

Поделиться этой страницей