检查用户输入是否为空行,如果输入为空,程序将退出;如不为空,屏幕打印输入的字符串。
#include
char input[257], *ptr;
int main(void)
{
puts("Enter text a line at a time, then press
enter.");
puts("Enter a blank line when done.");
while(*(ptr = gets(input)) != NULL)
printf("You entered %s\n",
input);
puts("Thank you and good-bye\n");
return 0;
}
=======================================================
while(*(ptr = gets(input)) != NULL)
gets()函数不断从键盘读取输入,直到遇到换行符;
将输入的字符串(删除换行符,加上空字符)存储到input指向的内存单元;
将字符串的地址(input的值)返回给指针ptr;
赋值语句是一个表达式,值为赋值运算符左边的变量的值。因此整个表达式ptr=gets(input)的值为ptr的值。用括号将该表达式括起,并使用间接运算符来处理它,可以获得存储在ptr指向的地址处的值。这是输入的字符串中的第一个字符。
NULL是头文件stdio.h中定义的一个符号常量,其值为空字符(0);
如果输入的字符串的第一个字符不是空字符(即输入的不是空行),则比较的结果为true,while循环将执行;否则比较的结果为false,while循环将结束。