首页 > 编程笔记 > C语言笔记 阅读:27

C语言puts()和gets()函数的用法(附带实例)

在 C 语言程序中,putchar() 和 getchar() 函数都只能对单个字符进行操作,如果使用它们操作字符串,会很麻烦。C语言提供了两个专门对字符串进行操作的函数,分别为 gets() 和 puts() 函数。

C语言puts()字符串输出函数

C语言中输出字符串使用的是 puts() 函数,它的作用是输出一个字符串到屏幕上。

puts() 函数的语法格式如下:
int puts(char *str);
使用 puts() 函数时,先要在程序中添加<stdio.h>头文件。其中,形式参数 str 是一个字符指针变量,用来接收要输出的字符串。

例如,使用 puts() 函数输出一个字符串:
puts("I LOVE CHINA!");
上述语句首先会输出一个字符串,之后会自动进行换行操作。这与 printf() 函数有所不同,使用 printf() 函数进行换行时,要在其中添加转义字符“\n”。

puts() 函数会在字符串中判断“\0”结束符,遇到结束符时,后面的字符不再输出,并且自动换行。例如:
puts("I LOVE\0 CHINA!");
在上面的语句中,加上“\0”字符后,puts() 函数输出的字符串就变成了“I LOVE”。

编译器会在字符串常量末尾自动添加“\0”结束符,因此 puts() 函数会在输出字符串常量后自动进行换行操作。

【实例】使用 puts() 函数对字符串常量“I LOVE CHINA”和字符串变量进行操作,在这些操作中观察 puts() 函数的使用方式。
#include<stdio.h>
int main()
{
    char* Char="I LOVE CHINA"; /*定义字符串指针变量并赋初值*/

    puts("ILOVECHINA!");     /*输出字符串常量*/
    puts("I\0LOVE\0CHINA!"); /*输出字符串常量,其中加入两个结束符 “\0” */
    puts(Char);             /*输出字符串变量的值*/
    Char="ILOVE\0CHINA!";   /*改变字符串变量的值*/
    puts(Char);             /*输出改变后的字符串变量的值*/
    return 0;               /*程序结束*/
}
第一次使用 puts() 函数输出的字符串常量中,由于在该字符串中没有结束符“\0”,所以会完整输出整个字符串,直到最后编译器为其添加结束符“\0”为止。

第二次使用 puts() 函数输出的字符串常量中,人为添加了两个“\0”,因此只能输出第一个结束符之前的字符,然后进行换行操作。

第三次使用 puts() 函数输出的是字符串指针变量,函数根据变量的值进行输出。因为在变量的值中没有结束符,所以会完整输出整个字符串,直至最后编译器为其添加结束字符,然后进行换行操作。

改变 Char 变量的值后,在使用 puts() 函数输出变量时,由于变量的值中包含一个结束符“\0”,因此将输出第一个结束符之前的所有字符,然后进行换行操作。

运行程序,显示效果为:
ILOVECHINA!
I
I LOVE CHINA
ILOVE

C语言gets()字符串输入函数

C语言完成字符串输入使用的是 gets() 函数,语法格式如下:
char *gets(char *str);
其中,str 是一个字符指针变量,用来存储用户输入的字符串。

使用 gets() 函数前,要添加头文件<stdio.h>。它的作用是将读取的字符串(即用户输入的字符串)保存在 str 变量中,直到出现新的一行为止。其新行的换行符将会转换为空终止符“\0”。

例如,定义字符数组变量 cString,然后使用 gets() 函数获取输入字符,代码如下:
gets(cString);
上面的代码中,cString 变量获取了字符串,并将最后的换行符转换成了终止字符。

【实例】模拟用户注册系统。首先提醒用户输入账号、密码、姓名和身份证号,注册完毕后,显示用户输入的注册信息。代码如下:
#include <stdio.h>
int main()
{
    char account[20], password[20], name[20], IDcard[20]; /*定义 4 个字符数组变量*/
    puts("请输入账号:");    /*提示信息*/
    gets(account);          /*获取账号字符串*/
    puts("请输入密码:");    /*提示信息*/
    gets(password);         /*获取密码字符串*/
    puts("请输入姓名:");    /*提示信息*/
    gets(name);             /*获取姓名字符串*/
    puts("请输入身份证号:"); /*提示信息*/
    gets(IDcard);           /*获取身份证号字符串*/

    puts("注册完成,信息如下:");
    puts("您输入的账号为:"); /*提示信息*/
    puts(account);          /*输出账号字符串*/
    puts("您输入的密码为:"); /*提示信息*/
    puts(password);         /*输出密码字符串*/
    puts("您输入的姓名为:"); /*提示信息*/
    puts(name);             /*输出姓名字符串*/
    puts("您输入的身份证号为:"); /*提示信息*/
    puts(IDcard);           /*输出身份证号字符串*/
    return 0;               /*程序结束*/
}
1) 因为要接收用户输入的账号、密码、姓名、身份证号等信息,所以定义了 4 个可以接收字符串的变量。account、password、name、IDcard 为字符数组变量的标识符。

2) 调用 gets() 函数,函数参数为前面定义的 account、password、name、IDcard 这 4 个变量。调用 gets() 函数后,程序会等待用户输入字符,用户输入完一个字符串并按 Enter 键确定时,gets() 函数将获取字符串结束标志“\0”,并将对应的字符串保存到上述 4 个变量中。

3) 使用 puts() 函数将获取的字符串依次输出。

运行程序,显示效果为:
请输入账号:
MR
请输入密码:
123456
请输入姓名:
Cyuyan
请输入身份证号:
123456
注册完成,信息如下:
您输入的账号为:
MR
您输入的密码为:
123456
您输入的姓名为:
Cyuyan
您输入的身份证号为:
123456

相关文章