Вывести количество чисел в строке - 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
, которое представляет собой количество чисел в строке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д