【例6-17】字符串处理函数gets()、gets_s()

C语言提供了丰富的字符串处理函数。
在使用字符串处理函数前,需要在程序开头使用编译预处理命令 #include
(一)字符串输入函数 gets()
函数调用格式:gets(str);    //已过时
(新)函数调用格式:gets_s(str,参数)  参数:参数为存储字符串的空间长度
函数功能:在标准输入设备输入一个字符串,以"回车键"结束,并把字符串
          存放到 str 指定的字符数组或存储区域中。
标准输入函数scanf_s(%s)也能实现字符串的输入操作,与gets_s()区别
使用scanf_s(%s)输入字符串时,遇"空格"即结束,即只能输入不带空格的字符串。

//gets_s()函数演示

#include
#include
char main()
{
	char str[30];
  //gets(str);		//warning C4013: “gets”未定义;假设外部返回 int
	/*
	warning C4013原因:gets函数 在 ISO/IEC 9899 2011(C11)标准中已被移除
	函数gets是ANSI C中的函数,其在读取时不检查边界,所以可能造成内存访问越界。
	例如分配了5个字节的空间,但读入了10个字节。
	gets()的安全版本:gets_s(字符数组名,参数)  参数:参数为存储字符串的空间长度
	*/

	gets_s(str, 30);
	printf("%s", str);

	return 0;
}

【例6-17】字符串处理函数gets()、gets_s()_第1张图片

 //比较:scanf_s(%s)函数,遇空格即结束。

#include
char main()
{
	char str[30];
	scanf_s("%s", &str, 30);
	printf("%s", str);

	return 0;
}

【例6-17】字符串处理函数gets()、gets_s()_第2张图片

你可能感兴趣的:(C语言程序设计/衡军山,马骁晨,2016.9月第一版,c语言,visual,studio)