Вывести количество чисел в строке - C (СИ)
Формулировка задачи:
Здрасьте. Плевое задание в пару строк упрямо не хочет функционировать, выдавая Run-Time Check failure #2 - Stack around the variable 's' was corrupted и ноль как результат.
Что я делаю не так?
Листинг программы
- #include <stdio.h>
- void main(void)
- {
- char s[20];
- int count = 0;
- gets(s);
- for (int i = 0; s[i] = '\0'; i++)
- {
- if (s[i] >= '0' || s[i] <= '9')
- count++;
- }
- printf_s("%d", count);
- }
Решение задачи: «Вывести количество чисел в строке»
textual
Листинг программы
- #include <stdio.h>
- #define MAX 20 // кол-во элементов в массиве
- int main(void)
- {
- char s[MAX];
- int count = 0, i=0;
- // ввод массива char s
- while ((s[i]=getchar())!='\n')
- i++;
- // записываем последний элемент строки '\0'
- if (i>=MAX-2)
- s[MAX-1]='\0';
- else s[i]='\0';
- // считаем кол-во символов в строке
- for (i = 0; s[i] != '\0'; i++)
- {
- if (s[i] >= '0' && s[i] <= '9')
- count++;
- }
- printf("%i \n", count);
- }
Объяснение кода листинга программы
В этом коде:
- Объявляется массив символов
s
максимального размераMAX
(20). - В цикле
while
осуществляется ввод строки с помощью функцииgetchar()
, которая возвращает следующий символ ввода. Последний символ в строке - это символ новой строки ('\n'). - В цикле
for
происходит проход по всем символам строки. Если символ является числом (больше или равен '0' и меньше или равен '9'), то увеличивается счетчикcount
. - Выводится значение счетчика
count
, которое представляет собой количество чисел в строке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д