Подсчитать количество вхождений слова "мама" в строку и вывести номера первых позиций этих вхождений - C (СИ)
Формулировка задачи:
Не выводит номер позиции. Помогите пожалуйста
Подсчитать количество вхождений слова «мама» в строку и вывести номера первых позиций этих вхождений. Если этого слова в строке нет, то вывести об этом информацию.
#include "stdafx.h" #include "windows.h" #include "iostream" #include "string.h" int main() { setlocale (LC_ALL,"RUS"); int n=0; char s[100]; printf ("Введите строку\n"); gets(s); char *p=s; while(*p) { p=strstr( p, "mama"); if(p==NULL) break; n++; p++; } printf("Номер позиции %d\n", p); printf("Количество вхождений = %d\n", n); system("pause"); return 0; }
Решение задачи: «Подсчитать количество вхождений слова "мама" в строку и вывести номера первых позиций этих вхождений»
textual
Листинг программы
printf("Номер позиции: %d\n", p-s);
Объяснение кода листинга программы
В данном коде происходит следующее:
- Вводится строка s, в которую затем добавляются различные символы и слова, в том числе и слово
мама
. - Затем в цикле происходит поиск слова
мама
в строке s с помощью функции strstr(). Функция возвращает указатель на первое вхождение подстрокимама
в строку s. Если подстрока не найдена, то возвращается значение NULL. - Если функция strstr() вернула не NULL, то значит подстрока
мама
найдена в строке s. В этом случае измеряется расстояние от начала строки s до первого вхождения подстрокимама
с помощью функции ptrdiff(). Полученное значение сохраняется в переменной p. - Затем выводится сообщение с номером позиции первого вхождения слова
мама
в строку s с помощью функции printf(). Список действий в коде: - Ввод строки s.
- Добавление различных символов и слов в строку s.
- Поиск слова
мама
в строке s с помощью функции strstr(). - Измерение расстояния от начала строки s до первого вхождения подстроки
мама
с помощью функции ptrdiff(). - Вывод сообщения с номером позиции первого вхождения слова
мама
в строку s с помощью функции printf().
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д