字符数组与字符串(C++/C)

目录

字符数组

声明和初始化

用串常量进行字符数组初始化

逐个字符对字符数组元素赋初始值

常用函数


字符数组

C++没有字符串类型,以字符数组作为字符串:

  • '\0' 为字符串结束的标志
  • '\0' 是ASCII码为0的不可显示字符,即“空操作符”
  • 对字符数组用字符串常量进行初始化时,最后自动添加'\0'

声明和初始化

用串常量进行字符数组初始化

char g[] = "Hello";
cout << g << endl;

g在内存中的存储:C++编译器在初始化数组时,自动将 '\0' 放在字符串末尾。

逐个字符对字符数组元素赋初始值

1)下面这样初始化字符数组,则不会加入 '\0'

char g[] = { 'H', 'e', 'l', 'l', 'o' };
cout << g << endl;

但输出为:

所以,必须人为加入 '\0',输出才正确。

char g[] = { 'H', 'e', 'l', 'l', 'o', '\0' };
cout << g << endl;

2)指定字符数组的大小,再逐个字符去初始化

char g[5] = {'h','e','l','l','o'}
char gp[6] = {'h','e','l','l','o'}

cout << g << endl;
cout << gp << endl;

结合1)和2)表明利用这种逐个字符的方式对字符数组初始化时,若没有指定数组大小则需在最后手动添加 '\0' 字符;若指定数组大小为n,则字符的个数最多为n-1个。


常用函数

strcpy(s1, s2)复制字符串s2到字符串s1
strcat(s1, s2)连接字符串s2到字符串s1的末尾
strlen(s1)返回字符串s1的长度
strcmp(s1, s2)比较,如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回值小于 0;如果 s1>s2 则返回值大于 0。
strchr(s1, ch)返回一个指针,指向字符串s1中字符ch的第一次出现的位置
strstr(s1, s2)返回一个指针,指向字符串s1中字符串s2的第一次出现的位置

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值