Определить количество вхождений символа в текст - C (СИ)
Формулировка задачи:
необходимо ввести строку (это делает пользователь), потом символ и определить количество вхождений символа в текст.
Смотрю по книге, но тут нет примера ввода строки, только как задать конкретную строку.
Для подсчёта числа вхождений надо использовать функцию strchr. В книге это описано как "char *strchr (const char *s, int c)". Что указывать вместо 1-й и 2-й звёздочки?
кроме этого пока ничего путного придумать не могу:
char key, sym; printf("\nInsert string\n"); scanf("%c", &key); printf("\nInsert symbol\n"); scanf("%c", &sym);
Решение задачи: «Определить количество вхождений символа в текст»
textual
Листинг программы
#include <stdio.h> #define MAXLINE 1000 /* максимальная длина строки */ /* запрашивает строку и символ, определяя количество его вхождений */ main() { unsigned char line[MAXLINE], *p; int c, nc; printf("Enter line: "); if (fgets(line, MAXLINE, stdin) == NULL) return 1; printf("Enter character: "); if ((c = getchar()) == EOF) return 2; for (p = line, nc = 0; *p != '\0'; p++) if (*p == c) nc++; printf("Answer: "); printf(nc == 0 ? "none" : "%c %d", c, nc); putchar('\n'); return 0; }
Объяснение кода листинга программы
- Подключение стандартной библиотеки file.h
- Установка переменной MAXLINE равной 1000, которая определяет максимальную длину строки
- Объявление переменных:
- unsigned char line[MAXLINE] - строка, в которой будет храниться текст
- *p - указатель на первый символ строки
- int c - символ, количество вхождений которого нужно определить
- int nc - переменная для подсчета количества вхождений символа
- Вывод сообщения с просьбой ввести строку
- Если ввод строки не удался (EOF), то программа завершается с кодом ошибки 1
- Вывод сообщения с просьбой ввести символ
- Если ввод символа не удался (EOF), то программа завершается с кодом ошибки 2
- Инициализация переменной nc нулем
- Цикл for, который проходит по каждому символу строки
- Если текущий символ равен введенному символу, то увеличивается значение переменной nc
- Вывод сообщения с результатом подсчета
- Вывод символа, количество вхождений которого было подсчитано
- Возврат каретки в начало строки
- Возврат нулевого значения переменной nc (для случая, когда символ не был найден)
- Возврат 0, что означает успешное выполнение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д