Вывести количество чисел в строке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здрасьте. Плевое задание в пару строк упрямо не хочет функционировать, выдавая Run-Time Check failure #2 - Stack around the variable 's' was corrupted и ноль как результат.
Листинг программы
  1. #include <stdio.h>
  2. void main(void)
  3. {
  4. char s[20];
  5. int count = 0;
  6. gets(s);
  7. for (int i = 0; s[i] = '\0'; i++)
  8. {
  9. if (s[i] >= '0' || s[i] <= '9')
  10. count++;
  11. }
  12. printf_s("%d", count);
  13. }
Что я делаю не так?

Решение задачи: «Вывести количество чисел в строке»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. #define MAX 20 // кол-во элементов в массиве
  4.  
  5. int main(void)
  6. {
  7.     char s[MAX];
  8.     int count = 0, i=0;
  9.    // ввод массива  char s
  10.     while ((s[i]=getchar())!='\n')
  11.         i++;
  12. // записываем последний элемент строки '\0'    
  13.     if (i>=MAX-2)
  14.         s[MAX-1]='\0';
  15.     else s[i]='\0';
  16.    
  17. // считаем кол-во символов в строке
  18.     for (i = 0; s[i] != '\0'; i++)
  19.     {
  20.         if (s[i] >= '0' && s[i] <= '9')
  21.             count++;
  22.     }
  23.     printf("%i \n", count);
  24. }

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

В этом коде:

  1. Объявляется массив символов s максимального размера MAX (20).
  2. В цикле while осуществляется ввод строки с помощью функции getchar(), которая возвращает следующий символ ввода. Последний символ в строке - это символ новой строки ('\n').
  3. В цикле for происходит проход по всем символам строки. Если символ является числом (больше или равен '0' и меньше или равен '9'), то увеличивается счетчик count.
  4. Выводится значение счетчика count, которое представляет собой количество чисел в строке.

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


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

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

14   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы