检查用户输入是否为空行,如果输入为空,程序将退出;如不为空,屏幕打印输入的字符串。

#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循环将结束。

c语言检查字符数组不为空,【C语言】检查输入是否为空,如为空,程序退出相关推荐

  1. c 语言往字符数组里面赋值,关于c 语言字符数组的赋值

    首先,在语法上,三句都是正确的,但按照C语言中字符串的用法,第二句是错误的,可能导致无法预料的错误结果. 在C语言中,我们一般说的字符串,其实就是字符数组(区别于C++,Java等语言),而用类似ch ...

  2. C语言中字符数组的初始化与注意事项

    在C语言中字符数组的初始化有三种常见的方法: char a[5] = {'a','b','c','d','e'};char c[] = {'a','b','c','d','e'};char b[] = ...

  3. C语言中字符数组的初始化与赋值,字符串相关函数

    C语言中字符数组的初始化与赋值,字符串相关函数! 1.字符数组初始化 在C语言中,字符串是当做字符数组来处理的:所以字符串有两种声明方式,一种是字符数组,一种是字符指针. (1)直接逐个初始化字符数组 ...

  4. C语言关于字符数组接受字符串解析

    C语言关于字符数组接收字符串解析 前言:在一道算法题中遇到了一个让我很诧异的问题,strlen为什么得不到正确的长度.答案是我对字符数组进行的是赋值操作,不会自动补'/0'. 本文从三个角度分析问题, ...

  5. c语言取字符数组最后几位

    c语言取字符数组最后几位 #include<stdio.h>int main (){char s[] = "123253426" ;char *t = &s[2 ...

  6. c语言初始化字符数组为空,怎么把已经初始化的字符数组设置为空?

    怎么把已经初始化的字符数组设置为空? 两种方法,如下所示. 方法一: 代码演示 #include #include int main(void) { char a[]={'x','y','z'}; / ...

  7. C语言的字符数组(字符串)的定义与初始化

    1.字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y ...

  8. C++语言篇 字符数组与字符串输入

    一.在字符数组输入中,常用到cin , scanf() , gets() , cin.getline()和cin.get()函数. 注意:gets() , cin.getline()和cin.get( ...

  9. C语言中字符数组初始化的几种方法

    欢迎关注我的微信公众号:CurryCoder的程序人生 1.C语言中的字符数组初始化 在C语言中,字符串是当做字符数组来处理的:所以字符串有两种声明方式,一种是字符数组,一种是字符指针. 1.1 直接 ...

最新文章

  1. C内存1:从硬盘 到 内存 到 CPU
  2. 它来了!无人车穿梭在深圳的“宇宙最强街道”
  3. web前端项目--用hbuilder调试app项目
  4. 基于Spark MLlib平台的协同过滤算法---电影推荐系统
  5. 麒麟linux创建用户组,麒麟Linux系统用户和组管理指南(21页)-原创力文档
  6. vue 新版本 webpack 代理 跨域设置
  7. 1087 有多少不同的值 (20 分)
  8. web服务器 apache_如何配置Apache Web服务器
  9. dpm码识别_如何读取直接零件打标码(DPM)
  10. php strcmp 比较汉字,php中strcmp() 比较中文是按照什么比较的
  11. java的前台与后台
  12. c语言小球消砖块增加一行砖块,基于Unity的小球撞击砖块小游戏
  13. 3.4 SQL--多表查询分组排序
  14. 老司机通过后视镜辨别车距 完爆倒车影像功能
  15. 区分联通、移动、电信 号码的策略
  16. 视频产生的本质及色彩空间:RGB 和 YUV
  17. android 播放wav代码,播放简短的.wav文件 - Android
  18. Android kotlin上传头像实现
  19. Linux下禁用root远程登录并且新建一个用户赋予root权限
  20. 中创专利|中国5G标准必要专利达1.8万项,尊重知识产权,共建知识产权强国

热门文章

  1. 辽宁沈阳计算机学校王斯琪,青春正好,理所当“燃”——沈阳万合技校开展2020-2021年度春季学期跳大绳比赛...
  2. Linux中sudo、su和su -命令的区别
  3. 如何重启_消费市场按下重启键,企业该如何提前布局
  4. flask mysql 1366_2017-11-17 Python Flask Script+mysql环境设置
  5. 不显示_电脑不显示桌面图标怎么办?
  6. python实训目的意义_Python实训第二天--基础知识2
  7. oracle 分区字符转换,Oracle 普通表与分区表转换
  8. python中使用什么来实现异常捕捉_Python异常原理及异常捕捉实现过程解析
  9. Redis 实用技术——消息发布和订阅
  10. MySQL————表维护相关低频操作总结