【C语言】字符串输入的三种方式-创新互联

一、gets()

该函数原型为:

企业建站必须是能够以充分展现企业形象为主要目的,是企业文化与产品对外扩展宣传的重要窗口,一个合格的网站不仅仅能为公司带来巨大的互联网上的收集和信息发布平台,成都创新互联面向各种领域:成都火锅店设计成都网站设计成都全网营销解决方案、网站设计等建站排名服务。

# includechar *gets(char *str);

gets() 函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间

# includeint main(void)
{char a[256] = {0};
	gets(a);
	printf("%s",a);
    return 0;
}

运行结果:
在这里插入图片描述

二、getchar()
# includeint main(void)
{int i=0;
	int j;
	char ch;
	char a[256] = {0};
	while((ch=getchar())!='\n')//一直接收缓冲区的字符。直至收到回车
	{   	a[i]=ch;
	   	i++;
	}
	a[i]='\0';    //加上串尾符
	for(j=0;jprintf("%c",a[j]);
	}
    return 0;
}

运行结果:
在这里插入图片描述

三、scanf()
# includeint main(void)
{char a[256];
	scanf("%s",&a);
	printf("%s",a);
    return 0;
}

运行结果:
在这里插入图片描述

注:
  • scanf这种格式串不能接收带空格的字符串,比如输入"abc 123 678"的话,字符串只会接收到abc,遇空格就结束
    在这里插入图片描述

  • 使用 gets() 时,系统会将最后“敲”(Enter)的换行符从缓冲区中取出来,然后丢弃,所以缓冲区中不会遗留换行符;
    而使用scanf时,最后的“敲”会遗留在缓冲区中,如果使用scanf,则需要使用gerchar()将缓冲区的Enter吃掉

  1. 使用gets()后再输入一个字符,可知缓冲区无残留Enter
    在这里插入图片描述

  2. 换成scanf后,只敲了一次回车就结束程序,可知scanf情况下缓冲区有残留Enter在这里插入图片描述

  3. 加入getchar()即可解决残留Enter问题在这里插入图片描述

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前题目:【C语言】字符串输入的三种方式-创新互联
新闻来源:http://myzitong.com/article/eiopd.html