Отловить ввод пустой строки - C (СИ)

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

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

Здравствуйте!!! Подскажите как сделать не могу поймать ввод пустой строки, вот в такой вот задаче Программа должна прекращать принимать слова «на проверку» после ввода пустой строки. вот функция отрая считывает строки
char *getStr(void)
{   
    char temp[21];
    int c, i;
    i = 0;
    printf("ENTER WORD:  ");
    scanf("%s",temp);
    printf("%s", temp);
    temp[strlen(temp)] = "\0";
    return temp;
}
Спасибо заранее

Решение задачи: «Отловить ввод пустой строки»

textual
Листинг программы
#include <stdio.h>
#include <malloc.h>
#include <string.h>
 
char *getWord()
{
    char *w,c;
    int i;
    w=(char *)calloc(1,50);
    i=0;
    while(1)
    {
        c=getchar();
        if (c == 10) break;
        w[i++]=c;
    }
    return w;
}
int main(int argc, char* argv[])
{
    char *wd;
    while(1)
    {
        printf("Enter word: ");
        wd=getWord();
        if (strlen(wd) == 0) break;
        printf("%s was entered\n",wd);
        free(wd); 
    }
    printf("The end...\n");
    return 0;
}

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

В этом коде есть функция getWord, которая принимает ввод пользователя (предполагая, что ввод является строкой символов, а не строкой, состоящей из строк, разделенных пробелами), и выделяет для этого ввода строку символов. Если пользователь вводит пустую строку, функция возвращает пустую строку. В функции main есть цикл, который продолжает запрашивать ввод от пользователя до тех пор, пока пользователь не введет пустую строку. Если пользователь вводит не пустую строку, код выводит эту строку и затем освобождает память, выделенную для строки. Как только пользователь вводит пустую строку, цикл завершается, и код выводит сообщение The end....

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


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

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

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