字符数组和字符串的转换

阅读量: 588 编辑

字符数组和字符串是可以相互转化的。

int a[] = {1, 2, 3};
char c[] = {'a','b','c'};
cout << a << endl;
cout << c << endl;

访问数组名,得到的是数组首地址,打印其他类型的数组名,打印的都是一串地址,只有字符数组打印出去的是字符串。

因为\0这个结束符,是专门服务于字符数组的,是字符数组的结束符。因此打印字符数组时,内部可以知道在哪结束读取,不像其他类型的数组没有个”边界”。

一、字符数组转字符串

char shuZu[] = {'a','p','p','l','e','\0'};
cout << shuZu << endl; //apple

string s = shuZu;
cout << s << endl;

字符数组可以直接输出,得到的就是一串内容,而不是内存地址。这也是字符数组的特殊用法,打印数组名即代表输出里面存储的字符串。

二、字符串转字符数组

也可以直接将字符串赋值给一个字符数组,这样字符串会被自动转化为数组中的元素。

char shuZu[] = "helloworld";
cout << shuZu[0] << endl;

//修改
shuZu[0] = 'A';
cout << shuZu << endl; 

在进行转换的时候,如果声明了数组的长度,要和后面的字符串内容进行匹配,不可越界。

三、字符串初始化数组

指定了字符数组的大小为6,以容纳字符串"hello"和结束标志'\0'。所以,特别注意:字符数组的大小应大于字符个数。

char b[6] = {"hello"};
char b[6] = "hello";

二维数组

char a[3][4] = {"abc","def","ghi"};
爱码岛编程公众号
试卷资料
爱码岛编程小程序
在线刷题
苏ICP备13052010号
©2023 南京匠成信息科技有限公司