Первая часть: https://zelenka.guru/threads/704350/ Хоть первая часть нахер никому не сдалась, я на энтузиазме взялся за вторую часть. Второе, чему учат в шарагах это строки, а также работа со строками. Именно этим мы и займемся в этой части. Первое, что мы делаем - добавляем директиву string.h. Тем самым первые строчки кода выглядят так: #include <iostream> #include "string.h" Код #include <iostream> #include "string.h" Ввод строки с клавиатуры и Вывод строки на экран: cout<< "Vvedite stroku:" << endl; //выводим на экран сообщение getline(cin, mystring); //считываем с клавиатуры строку cout<<"Stroka: "<<mystring<<endl; //выводим строку на экран Код 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); 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 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); Код 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; Код 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; Код cout<< "Vvedite pervuyu stroku:" << endl; getline(cin,firststring); cout<<"Vvedite vtoruiu stroku"<<endl; getline(cin,secondstring); resultstring = firststring + secondstring; //объядиняем строки в отдельную переменную cout<<resultstring; Это базовые операции со строками. Задания со строками можно создавать крайне много, но, практически под любую задачу находится готовая функция, что не требует создания собственных алгоритмов решения.
string.h - это заголовочный файл C, а string - файл заголовка С++ и подключается он с <> Почему ты не юзаешь setlocal? Если обучаешь то обучай правильно, ну или упоминай о том что тебе лень прописать одну строчку чтоб работать с русскими буквами. Я так и не понял как ты собрался там считывать кол-во символов в строке. Ты запускал код или просто с интернета копипастишь? Там на выводе мусор. Не вижу смысла изобретать велосипед. Вот самый обычный алгоритм (Вывод сообщений можете сами добавить если так удобней): string a; cin >> a; int b = a.size(); cout << b; return 0; Код string a; cin >> a; int b = a.size(); cout << b; return 0; И да в своих примерах упоминай объявление переменных и их инициализацию, ты же вроде как обучаешь детишек. Забыл объявить тип переменной.
1. Я не обучаю - я предоставляю примеры программ/алгоритмах, которые выдаются в шарагах. 2. Про setlocale - я не использую русские символы в консоли поэтому я не добавил ее в коде. Каюсь, мой косяк. 3. Про количество символов: солнышко, код я не пизжю, вот тебе результат компиляции. Можешь кстати скопировать проверить: https://prnt.sc/lowjjd 4. Про то, что я забыл объявить переменную - главной части программы там именно цикличная функция, где и ищется символ в строке. Я показал только ее + вывод в зависимости от результата. Так, что большинство твоих придирок я считаю желанием утешить свое ЭГО и показать свою псевдо-профессиональность. Storlokol не забывай, на C++ Бог написал вселенную, и только он освоил его полностью.
kosolapka, Я про переменную в цикле for. Про метод length() я в курсе. Я просто объявил переменную length как string, а она int должна быть. Не пойму к чему упрек про эго. Ну не любишь критику ок не буду поправлять, пиши как хочешь.
storlokol да не, нормальную критику я воспринимаю адекватно. Можешь посмотреть в первой теме с примерами. Вот только твоя критика похоже на то, что я написал выше.