Определить количество вхождений символа в текст - 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;
}

Объяснение кода листинга программы

  1. Подключение стандартной библиотеки file.h
  2. Установка переменной MAXLINE равной 1000, которая определяет максимальную длину строки
  3. Объявление переменных:
    • unsigned char line[MAXLINE] - строка, в которой будет храниться текст
    • *p - указатель на первый символ строки
    • int c - символ, количество вхождений которого нужно определить
    • int nc - переменная для подсчета количества вхождений символа
  4. Вывод сообщения с просьбой ввести строку
  5. Если ввод строки не удался (EOF), то программа завершается с кодом ошибки 1
  6. Вывод сообщения с просьбой ввести символ
  7. Если ввод символа не удался (EOF), то программа завершается с кодом ошибки 2
  8. Инициализация переменной nc нулем
  9. Цикл for, который проходит по каждому символу строки
  10. Если текущий символ равен введенному символу, то увеличивается значение переменной nc
  11. Вывод сообщения с результатом подсчета
  12. Вывод символа, количество вхождений которого было подсчитано
  13. Возврат каретки в начало строки
  14. Возврат нулевого значения переменной nc (для случая, когда символ не был найден)
  15. Возврат 0, что означает успешное выполнение программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы