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