Переписать приведенную программу не используя strtok - C (СИ)
Формулировка задачи:
Помогите плз написать эту программу не используя strtok
#include "stdafx.h" #include "stdio.h" #include "string.h" int main(void) { char str[256], wrd[50]; int n = 0; printf("Enter string: "); gets(str); printf("Enter word: "); gets(wrd); for(char *p = strtok(str, " "); p; p = strtok(NULL, " ")) if(strlen(p) == strlen(wrd)) ++n; printf("Word: "); puts(wrd); printf("Count reps: %d", n); return 0; }
Решение задачи: «Переписать приведенную программу не используя strtok»
textual
Листинг программы
#include <iostream> #include <string> #include <sstream> int main(){ std::string str, wrd; int n = 0; std::cout << "Enter string: "; getline(std::cin, str); std::cout << "Enter word: "; std::cin >> wrd; std::istringstream ist(str); while( ist >> str ) if(str.length() == wrd.length()) ++n; std::cout << "Word: "; std::cout << wrd; std::cout << " Count reps: " << n; return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream, string, sstream
- Объявление переменных:
- str (строка) - для хранения введенной строки
- wrd (строка) - для хранения слова, длина которого будет проверяться
- n (целое число) - для подсчета количества повторений слова
- Вывод сообщения с просьбой ввести строку
- Считывание строки с помощью функции getline
- Вывод сообщения с просьбой ввести слово
- Считывание слова с помощью функции cin
- Создание объекта istringstream из строки str
- Запуск цикла while, который будет выполняться до тех пор, пока объект istringstream не прекратит выдавать значения (то есть пока не закончится строка)
- Внутри цикла проверка длины текущего слова и увеличение счетчика n, если слова совпадают по длине
- Вывод слова, которое искали, и количество его повторений
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д