C语言,如何输入一个以回车结束的字符串??

2020-10-29 教育 401阅读

库函数fgets把'\n'作为结束命令,同时也当作一个字符存储到目标空间里,并在其后加一个'\0'。所以用fgets接收键盘输入就能方便地达到题面的要求。可用下列代码测试:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    char a[100];
    fgets(a,100,stdin);//stdin表示从键盘输入而不是从文件
    printf("%s",a);//这里%s后没有\n,但输出是有回车的
    return 0;
}

这里使用了printf("%s",a);(输出字符串)而非printf("%s\n",a);(输出字符串加'\n'),却能达到后者的效果,是因为fgets函数把最后输入的'\n'作为一个字符存储在字串末尾了,在'\n'之后才加一个'\0',所以这里的回车是由字符串的最后一个字符'\n'产生的。正好达到题面的要求——“输入一个以回车结束的字符串”!

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com