在 C++ 编程中,字符数组函数是处理字符串操作的重要工具。下面将详细介绍几种常见的字符数组函数及其用法,并附上相应实例。
一、长度函数 strlen ()
- 函数原型与头文件
- 函数原型:
strlen(字符数组名)
。 - 头文件:
<cstring>
。
- 函数原型:
- 功能
- 计算整体输入的字符数组中字符个数,不包含‘\0’在内。
- 实例
- 当使用
cin
输入时,例如:
- 当使用
char a[30];
cin>>a; // 输入hello world,实际存储为hello(因为cin遇到空格停止)
int x = strlen(a);
cout<<x; // 输出5
- 当直接赋值时,例如:
char a[30] = "hello world";
cout<<strlen(a); // 输出11
- 遍历字符数组可以使用以下两种方式(以直接赋值的字符数组为例):
// 方式1
for(int i = 0;i<strlen(a);i++){
cout<<a[i];
}
// 方式2
for(int i = 0;i<=strlen(a)-1;i++){
cout<<a[i];
}
二、比较函数 strcmp ()
- 函数原型与头文件
- 函数原型:
strcmp(字符数组s1,字符数组s2)
。 - 头文件:
<cstring>
。
- 函数原型:
- 功能
- 比较字符串 s1 和 s2,按照字典序规则(自左向右逐个字符比较 ASCII 值,直到出现不同字符或‘\0’为止)。
- 当 s1<s2 时,返回负数;当 s1>s2 时,返回正数;当 s1=s2 时,返回 0。
- 实例
char str[20],str2[30];
cin>>str>>str2;
if(strcmp(str,str2)>0){
cout<<str;
}else{
cout<<str2;
}
三、复制函数 strcpy ()
- 函数原型与头文件
- 函数原型:
strcpy(字符数组a,字符数组b)
。 - 头文件:
<cstring>
。
- 函数原型:
- 功能
- 把字符数组 b 复制到字符数组 a 中。
- 实例
char a[20]="hello",b[30]="world";
strcpy(a,b);
cout<<a<<endl; // 输出world
cout<<b<<endl;// 输出world
- 注意:使用
strcpy()
函数时,要保证字符数组 a 空间足够大,否则会出现数组越界的情况。
四、连接函数 strcat ()
- 函数原型与头文件
- 函数原型:
strcat(字符数组a,字符数组b)
。 - 头文件:
<cstring>
。
- 函数原型:
- 功能
- 把 b 所指向的字符串添加到 a 结尾处(覆盖 a 结尾处的‘\0’)。
- 实例
char a[20]="hello",b[30]="world";
strcat(a,b);
cout<<a<<endl; // 输出helloworld
cout<<b<<endl;// 输出world
- 注意:使用
strcat()
函数时,要保证字符数组 a 空间足够大,否则会出现数组越界的情况。