C语言中puts()和gets()函数:字符串操作的便捷方式及语法解析
在C语言程序里,putchar()函数只能对单个字符做操作,getchar()函数同样只能对单个字符进行操作,要是用它们来操作字符串,会非常麻烦,C语言给出了两个专门针对字符串进行操作的函数,其中一个是gets()函数,另一个是puts()函数。

C语言中,输出字符串会用到puts()函数,该函数的作用是,将一个字符串输出到屏幕上 。
puts() 函数的语法格式如下:
int puts(char *str);
使用puts()函数时,要先在程序中添加头文件。形式参数str是一个字符指针变量。它用来接收要输出的字符串。
例如,使用 puts() 函数输出一个字符串:
puts("I LOVE CHINA!");
上述语句首先会输出一个字符串,之后会自动进行换行操作,这与printf()函数不同,使用printf()函数进行换行时,要在其中添加转义字符“\n”。
puts()函数会在字符串里判断“\0”结束符,当遇到结束符时,后面的字符就不再输出了,而且会自动换行。例如:
puts("I LOVE\0 CHINA!");
在上面的语句里,添加了“\0”字符之后,puts()函数输出的字符串变为了“I LOVE”。
编译器会在字符串常量末尾自动添加结束符“\0”,puts()函数会在输出字符串常量后自动进行换行操作。
对字符串常量“I LOVE CHINA”运用puts()函数进行操作,对字符串变量运用puts()函数进行操作,在这些操作里观察puts()函数的使用方式。
#includeint main() { 定义一个字符串指针变量,名为Char,给它赋初值为I LOVE CHINA。 输出字符串常量,输出“ILOVECHINA!” 输出字符串常量,在其中加入两个结束符 “\0”,输出内容为 "I\0LOVE\0CHINA!" 。 输出字符串变量的值,执行puts(Char) 改变字符串变量的值,将其值设为“ILOVE\0CHINA!” 输出改变后的字符串变量的值,通过puts(Char)来实现 返回0,此为程序结束 。 }
第一次使用puts()函数输出字符串常量时,该字符串中没有结束符“\0”,因此会完整输出整个字符串,直至最后编译器为其添加结束符“\0” 。
第二次使用puts()函数输出字符串常量时,人为添加了两个“\0”,所以只能输出第一个结束符之前的字符,之后进行换行操作。
第三次使用puts()函数时,输出的是字符串指针变量。该函数会依据变量的值来进行输出。由于变量的值中不存在结束符,所以会完整输出整个字符串。一直到最后编译器为其添加结束字符,随后进行换行操作。
改变Char变量的值后,使用puts()函数输出变量,变量的值中包含一个结束符“\0”,会输出第一个结束符之前的所有字符,之后进行换行操作。
运行程序,显示效果为:
ILOVECHINA! I I LOVE CHINA ILOVE
C语言完成字符串输入要使用gets()函数,这是C语言的字符串输入函数,其语法格式如下:
char *gets(char *str);
其中,str是一个字符指针变量,该变量用于存储用户输入的字符串。
使用gets()函数前,要添加头文件。gets()函数会将读取的字符串,也就是用户输入的字符串,保存在str变量中,直到出现新的一行。新行的换行符会被转换为空终止符“\0”。
定义字符数组变量cString,接着使用gets()函数获取输入字符,代码如下:
gets(cString);
上面的代码中,cString变量获取了字符串,该变量把最后的换行符转换成了终止字符。
模拟用户注册系统,首先提醒用户输入账号,接着提醒用户输入密码,然后提醒用户输入姓名,再提醒用户输入身份证号,注册完毕后,显示用户输入的注册信息。代码如下:
#includeint main() { 定义4个字符数组变量,分别为account,password,name,IDcard,每个数组的长度均为20 。 puts("请输入账号:"); /*提示信息*/ 获取账号字符串,执行获取账号的操作 puts("请输入密码:"); /*提示信息*/ 获取密码字符串,通过执行gets(password)操作 。 puts("请输入姓名:"); /*提示信息*/ 获取姓名字符串,进行的操作是gets(name) puts("请输入身份证号:"); /*提示信息*/ 获取身份证号字符串,通过执行gets(IDcard)操作 。 puts("注册完成,信息如下:"); puts("您输入的账号为:"); /*提示信息*/ 输出账号字符串,执行puts(account);操作 puts("您输入的密码为:"); /*提示信息*/ 输出密码字符串,将密码进行输出 puts("您输入的姓名为:"); /*提示信息*/ 输出姓名字符串,输出的内容是姓名字符串,通过puts函数来输出姓名字符串,puts函数的参数是姓名字符串 。 puts("您输入的身份证号为:"); /*提示信息*/ 输出身份证号字符串,执行puts(IDcard);操作 return 0; /*程序结束*/ }
要接收用户输入的账号、密码、姓名、身份证号等信息,因此定义了4个可以接收字符串的变量,account、password、name、IDcard是字符数组变量的标识符。
调用gets()函数,该函数的参数是前面定义的4个变量,这4个变量分别是account、password、name、IDcard 。调用gets()函数后,程序会等待用户输入字符。当用户输入完一个字符串并按Enter键确定时,gets()函数会获取字符串结束标志“\0”。gets()函数会将对应的字符串保存到上述4个变量中。
3) 使用 puts() 函数将获取的字符串依次输出。
运行程序,显示效果为:
请输入账号: MR 请输入密码: 123456 请输入姓名: Cyuyan 请输入身份证号: 123456 注册完成,信息如下: 您输入的账号为: MR 您输入的密码为: 123456 您输入的姓名为: Cyuyan 您输入的身份证号为: 123456