字符串
定义与遍历
#include<stdio.h>
int main()
{
//定义一个二维数组,存储多个学生的名字
char strArr[5][100] = {
"sadf",
"eg",
"hbt",
"na",
"cse",
};
//遍历二维数组
for (int i = 0; i < 5; i++)
{
char* str = strArr[i];
printf("%s\n", str);
};
//第二种方式
//把五个字符串的指针,放入一个数组中
// 指针数组
const char* strArr2[5] =
{
"sadf",
"eg",
"hbt",
"na",
"cse",
};
//遍历
for (int i = 0; i < 5; i++)
{
const char* str = strArr2[i];
printf("%s\n", str);
}
return 0;
}
结果
sadf
eg
hbt
na
cse
sadf
eg
hbt
na
cse
在书写代码时发生C++错误:“const char *“ 类型的值不能用于初始化 “char *“ 类型的实体
错误代码如下
//把五个字符串的指针,放入一个数组中
// 指针数组
char* strArr2[5] =
{
"sadf",
"eg",
"hbt",
"na",
"cse",
};
//遍历
for (int i = 0; i < 5; i++)
{
char* str = strArr2[i];
printf("%s\n", str);
}
类型不匹配:字符串字面值"sadf",“eg”,“hbt”,“na”,"cse"的类型是 const char*,即指向常量字符的指针(const char*),而 char* strArr2[5] 定义了存储指针数组,每个元素应该是 char* 类型的指针(指向字符的指针)。所以需要在前面加上const表示常量。
常用函数
名字 | 作用 |
---|---|
strlen | 获取字符串长度 |
strcat | 拼接两个字符串 |
strcpy | 复制字符串 |
strcmp | 比较两个字符串 |
strwr | 将字符串变成小写 |
strupr | 将字符串变成大写 |