您的位置:首页 > 编程语言 > C语言/C++

C语言--字符串处理函数的使用

2015-10-20 17:06 435 查看

一、字符串输出函数 puts

格式: puts(字符数组名)

功能 : 把字符数组中的字符串输出到显示器。 即在屏幕上显示该字符串。

//定义一个字符串
char ch[] = "Hello, World!";

//打印
puts(ch);


打印结果:

Hello, World!

注:

puts函数中可以使用转义字符,因此输出结果成为两行。

puts函数完全可以 由 printf函数取代。

当需要按一定格式输出时,通常使用printf函数。

二、字符串输入函数 gets

格式: gets (字符数组名)

功能:从标准输入设备键盘上输入一个字符串。

//定义一个字符串
char ch[20];

//接收
gets(ch);

//输出
puts(ch);


打印结果:

warning: this program uses gets(), which is unsafe.

nihao

nihao

gets与scanf函数的不同:

gets函数得到一个函数值,即为该字符数组的首地址。当输入的字符串中含有空格时, 输出仍为全部字符串。说明gets函数并不以空格作为字 符串输入结束的标志,而只以回车作为输入结束。这是的。

三、字符串连接函数 strcat

格式: strcat(字符数组名1,字符数组名2)

功能:把字符数组2中的字符串连接到字符数组1 中字符串的后面,并删去字符’\0’,函数返回值是字符数组1的首地址。

//定义两个个字符串
char str1[20] = "Hello, ";
char str2[10] = "World!";

//将str2连接到str1后面
strcat(str1, str2);

//打印
puts(str1);


打印结果:

Hello, World!

注:

把初始化赋值的字符数组与动态赋值的字符串连接起来。要注意的是,字符数组1应定义足够的长度,否则不能全部装入被连接的字符串。

四、字符串拷贝函数strcpy

格式: strcpy(字符数组名1,字符数组名2)

功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“\0”也一同拷贝。字符数名2, 也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。

//定义两个字符串
char str1[10] = "nihao";
char str2[10] = "wobuhao";

//把str2拷贝到str1
strcpy(str1, str2);

//把str2拷贝到str1会覆盖str1的内容
puts(str1);


打印结果:

wobuhao

注:

strcpy函数要求字符数组1应有足够的长度,否则不能全部装入所拷贝的字符串。

五、字符串比较函数strcmp

格式: strcmp(字符数组名1,字符数组名2)

比较规则:对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到’\0‘为止。

如果全部字符相同,则认为相等;若出现不相同的字符,则以第一个不相同的字 符的比较结果为准。

如果两个字符串都由英文字母组成,则有一个简单的规律:在英文字典中位置在后面的为 “大”。

还要特别注意:小写字母比大写字母“大”。

返回值:strcmp函数也可用于比较两个字符串常量,或比较数组和字符串常量。

//定义两个字符串
char st1[]="beijing";//北京 b ASCII码值:98
char st2[]="beiping";//北平 p ASCII码值:112

//定义整型变量
int k;

//接收函数返回值
k = strcmp(st1,st2);

//判断
if(k == 0)printf("st1 = st2\n");
if(k > 0) printf("st1 > st2\n");
if(k < 0) printf("st1 < st2\n");


打印结果:

st1 < st2

六、测字符串长度函数strlen

格式:strlen(字符数组名)

功能:测字符串的实际长度(不含字符串结束标志‘\0’)并作为函数返回值。

//定义一个字符串
char str[6] = "nihao";

//定义整型数接收返回值
int len = strlen(str);

//打印
printf("len = %d\n",len);


打印结果:

len = 5

七、fgets()函数的使用

gets的原型:

char* fgets(char* s, int n, FILE* fp);

格式: fgets(数组名,数组长度,stdin)

fgets从输入缓冲区读取一个字符串保存到字符数组中

当输入的字符串的长度大于数组的长度, 此时fgets会自动的把数组的最后一个元素变成‘\0’

当输入的字符串的长度小于数组长度的时候,fgets还会接收回车

//定义一个字符串
char str[5];

//从输入缓冲区获取sizeof(str)个字符,如果实际内容大于数组的容量,fgets()会自动截断
fgets(str, sizeof(str), stdin);

//打印
puts(str);


打印结果:

nihao

niha

八、fputs()函数的使用

fputs(将一指定的字符串写入文件内)

格式:

fputs(数组名,stdout);

相关函数: fopen,fwrite,fscanf,fputc,putc

表头文件:
#include<stdio.h>


定义函数:int fputs(const char * s,FILE * stream);

函数说明: fputs()用来将参数s所指的字符串写入到参数stream所指的文件内。

返回值:若成功则返回写出的字符个数,返回EOF则表示有错误发生。

//fputs是不会自动换行
//fputs也不能进行格式化的输出
//puts 可以自动换行

//定义一个字符串
char str[5];

//从输入缓冲区获取sizeof(str)个字符,如果实际内容大于数组的容量,fgets()会自动截断
fgets(str, sizeof(str), stdin);

fputs(str, stdout);


打印结果:

nihao

nihaProgram ended with exit code: 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: