Передача строки в функцию - C (СИ)

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

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

Я плохо засвоил тему об указателях, и теперь мучаюсь. В мейне надо ввести какую нибуть строку(char[]), потом вызвать некую функцию в которую надо передать ету стркоку, в етой функции строку надо будет использовать в strcmp. как ето сделать. если можно, киньте простой пример, с вызовом ф-ции и ее описанием, дальше сам разберусь.

Решение задачи: «Передача строки в функцию»

textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
 
int digits_count(const char * s) {
    return ( *s ) ? !!isdigit(*s) + digits_count(s + 1) : 0;
}
 
int main(void) {
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
        printf("%d digits.\n", digits_count(buf));
    
    return 0;
}

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

  1. Включаем необходимые заголовочные файлы для работы с функциями ввода-вывода и строками.
  2. Определяем функцию digits_count, которая принимает указатель на строку и возвращает количество цифр в этой строке. Рекурсивный вариант функции.
  3. Определяем функцию main, которая является точкой входа в программу. В этой функции программа запрашивает строку у пользователя, затем передает эту строку в функцию digits_count для подсчета количества цифр в ней.
  4. Создаем буфер для хранения строки, вводимой пользователем.
  5. Входим в цикл, который будет выполняться до тех пор, пока пользователь не введет пустую строку. В каждой итерации цикла:
    • Выводим приглашение для ввода строки.
    • Считываем строку с помощью fgets.
    • Проверяем, что строка не пустая.
    • Вызываем функцию digits_count для подсчета количества цифр в строке.
    • Выводим результат подсчета на экран.
  6. Завершаем программу.

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

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