字符数组和字符串的关系是什么?
字符数组和字符串的区别是什么?
字符数组用什么打印?是不可以用%s吗?为什么?那可以用什么方法打印?
谢谢!
字符串是以'\0'结尾的字符数组。区别也是这个
字符数组不能用%s输出,%s输出是按'\0'作为结束标志的,字符数组不一定有这个。
字符数组可以存储字符串
?字符串是数据 字符数组是存储结构
%s
存放的位置不同,除非是类货结构体成员,一般放在栈,因此它是不可变的
例如
char* str=....
str=另外一个地址,
char str[]=..
str=...//这是不允许的
对于c++而言,它的string你也可以理解为char *str,不过string替你封装了一套字符串常用操作,例如截取、查找、反转等。
对于printf()函数,它是c提供的默认输入输出流打印的函数,它只支持c中的原始类型以及指针的地址和char *类型。
所以只需要使用string.c_str()将string转换为char *类型即可打印。例如:
string str = "abc";
printf("%s\n",str.c_str());