Загрузка...

Program examples. #2

Thread in C/C++ created by kosolapka Nov 27, 2018. 285 views

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

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

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

    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;
    Поиск первого вхождения подстроки в строку:
    Code

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

    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;
    Объединить две строки:
    Code

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


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

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