Загрузка...

Примеры программ. #2

Тема в разделе C/C++ создана пользователем kosolapka 27 ноя 2018. 277 просмотров

Загрузка...
  1. kosolapka
    kosolapka Автор темы 27 ноя 2018 Слишком ленивый, чтобы писать. 797 2 янв 2018
    Первая часть: https://zelenka.guru/threads/704350/
    Хоть первая часть нахер никому не сдалась, я на энтузиазме взялся за вторую часть. Второе, чему учат в шарагах это строки, а также работа со строками. Именно этим мы и займемся в этой части.
    Первое, что мы делаем - добавляем директиву string.h. Тем самым первые строчки кода выглядят так:
    Код

    #include <iostream>
    #include "string.h"
    Ввод строки с клавиатуры и Вывод строки на экран:
    Код

    cout<< "Vvedite stroku:" << endl; //выводим на экран сообщение
    getline(cin, mystring); //считываем с клавиатуры строку
    cout<<"Stroka: "<<mystring<<endl; //выводим строку на экран
    Заметка: Считывание строки в С++ производится при помощи функции getline(). Вы также можете использовать cin, но в таком случае, будет считываться вся строка до первого пробела.
    Считаем количество символов в строке:
    Код
       
    cout<< "Vvedite stroku:" << endl;
    getline(cin,mystring);
    length = mystring.length(); //высчитываем количество симвоов в строке
    cout<<"V stroke: "<<length<<" simvolov";
    Поиск первого вхождения символа в строку:
    Код

    cout<< "Vvedite stroku:" << endl;
    getline(cin,mystring);
    cout<<"Vvedite simvol dlea kotorogo budet soversatsa poisk:"<<endl;
    cin>>c; //вводим символ для поиска
    position=-1;
    position = mystring.find_first_of(c,0); //выполняем поиск символа в строке
    if(position!=-1) //Выводим
    cout<<"Simvol "<<c<<" vstrecheaetsea vpervye na "<<position<<" pozitii";
    else
    cout<<"V stroke net simvola:"<<c;
    Поиск первого вхождения подстроки в строку:
    Код

    cout<< "Vvedite pervuyu stroku:" << endl;
    getline(cin,firststring);
    cout<<"Vvedite vtoruiu stroku"<<endl;
    getline(cin,secondstring);
    position = firststring.find(secondstring,0);
    Высчитывание числа вхождений символа в строку:
    Код

    for(i=0;i<mystring.length();i++)
    {
    if(mystring[i]==c) //c - переменная типа символ, вводится с клавиатуры, по ней и осуществляется поиск в строке
    counter++; //counter - счетчик вхождений
    }
    if(counter!=0)
    cout<<"V stroke: "<<counter<<" simvolov";
    else
    cout<<"Simvol "<<c<<" ne byl naiden v stroke:"<<mystring;
    Объединить две строки:
    Код

    cout<< "Vvedite pervuyu stroku:" << endl;
    getline(cin,firststring);
    cout<<"Vvedite vtoruiu stroku"<<endl;
    getline(cin,secondstring);
    resultstring = firststring + secondstring; //объядиняем строки в отдельную переменную
    cout<<resultstring;
    Это базовые операции со строками. Задания со строками можно создавать крайне много, но, практически под любую задачу находится готовая функция, что не требует создания собственных алгоритмов решения.
     
  2. ezbooz
    ezbooz 27 ноя 2018 991 29 мар 2018


    За старание и объяснение лукас :vo:
     
  3. storlokol
    storlokol 30 ноя 2018 496 12 сен 2013
    string.h - это заголовочный файл C, а string - файл заголовка С++ и подключается он с <>
    Почему ты не юзаешь setlocal? Если обучаешь то обучай правильно, ну или упоминай о том что тебе лень прописать одну строчку чтоб работать с русскими буквами.
    Я так и не понял как ты собрался там считывать кол-во символов в строке. Ты запускал код или просто с интернета копипастишь? Там на выводе мусор.
    Не вижу смысла изобретать велосипед. Вот самый обычный алгоритм (Вывод сообщений можете сами добавить если так удобней):
    Код

    string a;
    cin >> a;
    int b = a.size();
    cout << b;
    return 0;
    И да в своих примерах упоминай объявление переменных и их инициализацию, ты же вроде как обучаешь детишек.
    Забыл объявить тип переменной.
     
  4. kosolapka
    kosolapka Автор темы 30 ноя 2018 Слишком ленивый, чтобы писать. 797 2 янв 2018
    1. Я не обучаю - я предоставляю примеры программ/алгоритмах, которые выдаются в шарагах.
    2. Про setlocale - я не использую русские символы в консоли поэтому я не добавил ее в коде. Каюсь, мой косяк.
    3. Про количество символов: солнышко, код я не пизжю, вот тебе результат компиляции. Можешь кстати скопировать проверить: https://prnt.sc/lowjjd
    4. Про то, что я забыл объявить переменную - главной части программы там именно цикличная функция, где и ищется символ в строке. Я показал только ее + вывод в зависимости от результата. Так, что большинство твоих придирок я считаю желанием утешить свое ЭГО и показать свою псевдо-профессиональность.
    Storlokol не забывай, на C++ Бог написал вселенную, и только он освоил его полностью.
     
  5. storlokol
    storlokol 30 ноя 2018 496 12 сен 2013
    kosolapka, Я про переменную в цикле for. Про метод length() я в курсе. Я просто объявил переменную length как string, а она int должна быть. Не пойму к чему упрек про эго. Ну не любишь критику ок не буду поправлять, пиши как хочешь.
     
  6. kosolapka
    kosolapka Автор темы 30 ноя 2018 Слишком ленивый, чтобы писать. 797 2 янв 2018
    storlokol да не, нормальную критику я воспринимаю адекватно. Можешь посмотреть в первой теме с примерами. Вот только твоя критика похоже на то, что я написал выше.
     
Top