Вывести количество чисел в строке - 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);
}

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

В этом коде:

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

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


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

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

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