C++ 字符数组和string
一、char 数组(C 风格字符串)函数
需包含头文件 include <cstring>,数组定义为 char s;,以 \0 结尾 。
- 长度计算
strlen(s):返回字符串有效长度(不计\0)。- 注意与
sizeof(s)区分,后者返回数组总字节数 。
例子:
char a[6]="abcd"; cout<<strlen(a)<<endl; //输出:4 cout<<sizeof(a); //输出:6 - 复制操作
strcpy(dest, src):将src复制到dest,dest空间需足够大 。strncpy(dest, src, n):最多复制 n 个字符 。
- 拼接操作
strcat(dest, src):将src拼接到dest末尾,dest剩余空间需足够 。
- 比较操作
strcmp(s1, s2):比较两个字符串。相等返回 0,s1>s2 返回正数,s1<s2 返回负数(基于 ASCII 码) 。strncmp(s1, s2, n):仅比较前 n 个字符 。
- 查找子串和子字符
- strstr(s1, s2);
在 s1 找子串 s2,返回子串首地址;找不到返回 NULL strchr(字符数组, 字符):查找字符c在字符串s中第一次出现的位置指针,未找到返回NULL。- strrchr(字符数组, 字符);找到字符串最后一次出现的 c,常用于找后缀小数点
- strstr(s1, s2);
- 其他常用
memset(s, value, n):将数组前 n 个字节设置为value(常用于初始化memset(s, 0, sizeof(s))) 。注意:可以使用memset()将整型数组清0
例子:
char s[10]; memset(s, 'b', 6); //将字符数组前六位初始化为‘b’ cout<<s[0]<<endl; //输出:‘b’ cout<<s[7]<<endl; //输出:null memset(s,'b',sizeof(s)); //将整个数组初始化为‘b5’
二、cctype 字符判断函数(单个 char)
#include <cctype>
isalpha(c)是否字母isdigit(c)是否数字islower(c)是否小写字母isupper(c)是否大写字母tolower(c)转小写toupper(c)转大写
天助自助者

浙公网安备 33010602011771号