文章目录
Char数组深入Char数组的声明静态方式编译器带来的问题
动态方式
Char数组的长度string char* char[]的相互转换一、string转char\*:二、char \* 转string:三、string转char[]四、char[]转string
strcpy_s函数的使用
Char数组深入
Char数组的声明
静态方式
char *p = "Happy";// 其实它存的是H a p p y \0 这样
char a[]="Happy"; 等同于 char a[6] = {'H', 'a', 'p', 'p', 'y', '\0'};
//char a[5] = "Happy";//错误 数组越界 最后应有‘\0’
char a[5] = {'H','a','p','p','y'};等同于 char a[] = { 'H','a','p','p','y' };
编译器带来的问题
//在devc++中可以
char* ch1 = "Hello world";
//在VS中不能用上面的方法 但可以用以下的方式
//1、先用另外的字符数组存储Hello world,再对字符型指针进行初始化
char ch2[] = "Hello world";
char* text = ch2;
//2、将char类型强转为char*
char* text = (char*)"Hello world";
动态方式
char*p = new char[n];//只能存n-1个字符,C++默认最后一个是字符串结束空字符。
char* target = new char[strlen(传入的字符串) + 1];
或 char* target = new char[sizeof(传入的字符串)];
char* p = new char[6];
for(int i = 0; i |