字符数组及相关函数详细知识点
字符数组及相关函数
- 一、字符数组
-
- 1.定义
- 2.初始化
- 3.字符串赋值和结束标志
- 4.输入与输出
- 二、字符串处理函数
-
- 1.字符串连接函数strcat或stract_s
- 2.字符串复制函数strcpy和strcpy_s
- 3.字符串比较函数strcmp
- 4.求字符串函数长度strlen
- 5.大写字母变为小写字母strlwr
- 6.小写字母变成大写字母strupr
一、字符数组
1.定义
char + 数组名 +[个数]
例如:char str[10];
2.初始化
(1)与数值数组相同
char str[3]={‘A’,‘B’,‘C’};
(2)字符个数大于数组长度,做错误处理;若字符个数小于数组长度,后面字节全部为0
char [10]={‘A’,‘B’,‘C’};
(3)省略数组长度,字符数即为数组长度
char str[]={‘A’,‘B’,‘C’};
3.字符串赋值和结束标志
(1)C++字符串作为字符数组处理,用’\0’作为字符串的结束标志,占用空间内存,不计入串长度
char str[]={‘A’,‘B’,‘C’};
或char str[]=“ABC”
长度都为4个字节
4.输入与输出
(1)利用循环逐个输入输出
char str[10];for (int i=0;i<10;i++)cin>>str[i];
(2)把字符数组作为字符串输入输出
char str[10];cin>>str;cout<<str;
注意:cin格式输入字符串时,空格与回车均作为字符串的输入结束符。
(3)cin.getline(数组名,数组最大字符数+1)
可以把空格作为字符输入到数组中。
#include using namespace std;int main(){char s[10];cin.getline(s,10); //最多取9个字符给字符串cout<<s;return 0;}
二、字符串处理函数
使用字符串处理函数时包含头文件"string"
1.字符串连接函数strcat或stract_s
(1)stract
- 格式:stract(字符数组名1,字符数组名2);
char s1[19]="I can ";char s2[]="happy";cout<<strcat(s1,s2);
注意:s1要有足够的长度,否则不能全部装入被连接的字符串中。
(2)stract_s
- 格式:
stract_s(字符数组名1,合并后字符串的字符数量,字符数组名2);
char s1[19]="I can ";char s2[]="happy";cout<<stract_s(s1,strlen(s1)+strlen(s2),s2);
也可以这样用:
#include #includeusing namespace std;int main(){char s1[80], s2[40];cin >> s1;cin >> s2;strcat_s(s1, s2);cout << "The new string is:" << s1 << endl;return 0;}
2.字符串复制函数strcpy和strcpy_s
- (1)strcpy 格式:(字符数组名1,字符数组名2);
把字符串2中的全部复制到字符数组1中 - (2)strcpy_s
格式:(字符数组名1,目标缓冲区大小,字符数组名2);
目标缓冲区大小=strlen(s1)
3.字符串比较函数strcmp
-
(1)格式:strcmp(字符数组名1,字符数组名2);
如果两个字符串中的字符均相同,则认为两个字符串相等,函数返回值为0;若返回个正整数,则表示字符串1大于字符串2;若返回一个负整数,则表示字符串1小于字符串2. -
(2)判断两个字符串函数是否相等
if(s1==s2) //错误,s1和s2是首地址if(strcmp(s1,s2)==0) //正确
4.求字符串函数长度strlen
- 格式:strlen(字符数组名);
- 功能:计算字符串的有长度。
char s[100]="CHINA";cout<<strlen(s); //结果为5
5.大写字母变为小写字母strlwr
- 格式:strlwr(字符数组名)
6.小写字母变成大写字母strupr
- 格式:strupr(字符数组名)