Работа со строками

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

  1. LorD64Rus

    LorD64Rus Гость

    Дана задача​

    Дана строка символов. Заменить в ней все точки на запятые. Определить длину введенной строки.
    Нужно написать на код блоксе,предпоследняя лабораторка до зачёта.Заранее благодарю
     
  2. ierofant

    ierofant Гость

    Code::Blocks это не язык, а среда разработки. Которая поддерживает языки С, С++ и D. На каком языке должна быть программа?
     
  3. LorD64Rus

    LorD64Rus Гость

    Код (Text):
    #include <iostream>
    #include <string.h>

    using namespace std;

    int main()
    {
    char S[] = "8,G,4,12,0,A,M";
    bool flag = true;
    cout << "dlinna stroki = " << strlen (S) << endl;
    for (int i=0; i<strlen (S); i++)

    break;

    return 0;
    }
    Это решение количества элементов в строке (Не факт что верное),а как заменить запятые на точки?
     
  4. ierofant

    ierofant Гость

    Это код через стандартные строки С++. Раз ты сказал, что программа на C++, то я их использую, а не C-строки.
    Код (C++):
    #include <iostream>
    #include <string>

    int main ()
    {
    std::string str;
    std::cout << "Введите строку: " << std::endl;
    std::getline (std::cin, str);

    for (int pos = str.find ('.'); pos != -1; pos = str.find ('.', pos)) str.replace (pos, 1, ",");

    std::cout << "Отредактированная строка: " << std::endl << str << std::endl;
    std::cout << "Длина строки: " << str.size () << std::endl;

    return 0;
    }
     
  5. LorD64Rus

    LorD64Rus Гость

    А можно так что бы не вводить изменённую строку самому,а что бы она сама вылезла в окне программы,и он ещё длинну строки 0 пишет при сборке.
     
  6. ierofant

    ierofant Гость

    Изменённая строка сама и выводится. Вы исходную строку-то вводите в начале, как запускаете программу или просто enter жмёте?
     
  7. LorD64Rus

    LorD64Rus Гость

    Код (Text):
    #include <iostream>
    #include <string>

    int main ()
    {
    std::string str;
    std::cout << "1,5,9,8,7,1,2,3,6" << std::endl;
    std::getline (std::cin, str);

    for (int pos = str.find ('.'); pos != -1; pos = str.find ('.', pos)) str.replace (pos, 1, ",");

    std::cout << "1.5.9.8.7.10.2.3.6" << std::endl << str << std::endl; // как нибудь без этой строки можно?
    std::cout << "dlinna stroki =  " << str.size () << std::endl; // и во в этой строке что то не то,выводит что длинна строки равна нулю,хотя должно быть 17

    return 0;
    }
    Программа компилируется но работает не верно.
     
  8. ierofant

    ierofant Гость

    :facepalm: ;) :lol: Это в юмор! Вы мой код, который написан, без всяких своих изменений запустите! Там абсолютно ничего переписывать не надо!!!!
     
  9. LorD64Rus

    LorD64Rus Гость

    А строку ввести же нужно)
     
  10. ierofant

    ierofant Гость

    Боже мой! Запустите код уже! Вы введёте её после запуска программы.
     
  11. LorD64Rus

    LorD64Rus Гость

    Большое спасибо)Разобрался во всём)Сорри за "недохождение" с 1 раза=)
     
  12. Rififi

    Rififi Гость

    LorD64Rus

    Заменить в ней все точки на запятые.

    все намного проще...

    std::string s = "1,2,3,4,5,6,7,8,9";
    std::replace(s.begin(), s.end(), ',', '.');
     
Загрузка...
Похожие Темы - Работа со строками
  1. alexas1
    Ответов:
    1
    Просмотров:
    458
  2. shkeat
    Ответов:
    1
    Просмотров:
    1.690
  3. NickProstoNick
    Ответов:
    1
    Просмотров:
    2.309
  4. KiR
    Ответов:
    7
    Просмотров:
    9.458
  5. eugira
    Ответов:
    5
    Просмотров:
    5.405

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