输出一个字符串

来源:互联网 发布:淘宝售后服务卡 编辑:程序博客网 时间:2024/06/09 21:28
#include<stdio.h>#define N 12int main()//以输出一个名字为例 {    char name[N];    printf("请输入一名字(拼音):");    //scanf("%s",name);    //gets(name);    fgets(name,sizeof(name),stdin);/*从标准输入stdin中读取一行长度为sizeof(name)的字符串送到name为首地址的存储区中 */    printf("%s!\n",name);    return 0;} 

运行如下:
这里写图片描述
由于 fgets(name,sizeof(name),stdin); 语句限制了输入字符串的长度不能超过数组的大小sizeof(name),所以用户输入的多余字符都被丢弃。

特此说明(以Yang Li-wei为例):
1) scanf()表示读入一个字符串,直到遇空白字符(空格、回车键或制表符)为止。例:输入Yang Li-wei,输出只会是yang!,因为yang与Li-wei中间的空格被作为了终止符。
2) gets()以回车键为字符串的终止符。但gets()不限制输入字符串的长度,容易引起缓冲区溢出(会使程序存在安全隐患),所以用 fgets(name,sizeof(name),stdin); 限制输入字符串的长度。

原创粉丝点击