输出一个字符串

#include<stdio.h>
#define N 12
int 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); 限制输入字符串的长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值