C语言常用的字符串函数
一、目的
介绍四个常用的字符串函数。
二、字符串函数需要的库
#include<string.h>
三、主要函数
(一)求字符串的长度
1、函数的语法格式
size_t strlen(const char* p)
参数说明:
cons char* p :接收一个char类型的数组或者字符变量;
返回值:
整数: 参数代表的字符串序列的长度(是拥有的字节长度);
2、使用案例
#include<stdio.h>
#include<string.h>
int main(){
char n[50] = {"abc\0"};
// 打印长度
printf("长度:%d \n", strlen(n));
return 0;
}
结果:
长度:3
(二)连接函数
把两个字符串连接起来。
1、函数语法
char * strcat(char * dest, const char * src);
参数说明:
char* dest : 存放最终结果的数组或者字符串空间位置
char* src : 存放需要连接的字符串的数组或者字符串空间指针
返回值:
char*类型: 返回和dest一样的地址
通俗解释:把src位置的字符串接在dest位置的字符串的后面;dest需要空间足够;
2、使用案例
#include<stdio.h>
#include<string.h>
int main(){
// 存放连接后的结果
char des[15] = {"hello "};
// 需要连接的字符串
char src[7] = "world!\0";
// 开始连接
char* result_p = strcat(des, src);
printf("des的内容:%s \n", des);
printf("src数组的内容: %s \n", src);
printf("result_p的内容:%s \n", result_p);
return 0;}
结果:
des的内容:hello world!
src数组的内容: world!
result_p的内容:hello world!
(三)复制函数
把一个空间的字符串复制一份到另一个空间里。
1、函数语法
char* strcpy(char * dest, const char* src);
参数说明:
char* dest : 存放复制后的结果的数组或者字符串空间指针
char* src : 存放目标复制字符串的字符串的数组或者字符串空间指针
返回值:
char*类型: 返回和dest一样的地址
通俗解释:把src位置的内容复制一份给dest位置的空间;
2、案例
#include<stdio.h>
#include<string.h>
int main(){
// 存放复制结果
char dest[50];
// 存放复制的目标字符串
char src[10] = "abc\0";
// 开始复制
char* p = strcpy(dest, src);
printf("des的内容:%s \n", dest);
printf("src数组的内容: %s \n", src);
printf("p指针指向的值:%s \n", p);
return 0;
}
结果:
des的内容:abc
src数组的内容: abc
p指针指向的值:abc
(四)比较函数
比较两个字符串是否相等;
1、函数语法
int strcmp(const char* str1, const char* str2)
参数说明:
const char* str1 :参与比较的第一个字符串的存放指针
const char* str2 :参与比较的第二个字符串的存放指针
返回值:
0 :如果两个字符串相等;
-1 : 如果str1小于str2;
1 : 如果str1大于str2;
注意:是按照ASCII编码的顺序比较,靠后面的比前面的字符大;
2、使用案例
#include<stdio.h>
#include<string.h>
int main(){
// 存放第1个字符串
char str1[10] = {"abc"};
// 存放第2个字符串
char str2[10] = {"abcd"};
printf("比较结果:%d \n", strcmp(str1, str2));
return 0;
}
结果:
比较结果:0
如果是"abcd"和"abc"比较,结果是1。
如果是"abce"和"abcd"比较,结果是1。