C语言提供了丰富的字符串处理函数。
在使用字符串处理函数前,需要在程序开头使用编译预处理命令 #include<string.h>
(一)字符串输入函数 gets()
函数调用格式:gets(str); //已过时
(新)函数调用格式:gets_s(str,参数) 参数:参数为存储字符串的空间长度
函数功能:在标准输入设备输入一个字符串,以"回车键"结束,并把字符串
存放到 str 指定的字符数组或存储区域中。
标准输入函数scanf_s(%s)也能实现字符串的输入操作,与gets_s()区别:
使用scanf_s(%s)输入字符串时,遇"空格"即结束,即只能输入不带空格的字符串。
//gets_s()函数演示
#include<stdio.h>
#include<string.h>
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;
}
//比较:scanf_s(%s)函数,遇空格即结束。
#include<stdio.h>
char main()
{
char str[30];
scanf_s("%s", &str, 30);
printf("%s", str);
return 0;
}