Отловить ввод пустой строки - 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....