> 文档中心 > 字符数组及相关函数详细知识点

字符数组及相关函数详细知识点

字符数组及相关函数

  • 一、字符数组
    • 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(字符数组名)