这个是从c传承下来的,如果可行,还是建议用string,会省劲很多。
首先当使用char*或者char[]来表示字符串时,加上string.h头文件来调用库函数,或者#include
1、char
char只表示一个字符,若重复赋值,则或者会覆盖前者:
char ch='qwqewqe';
cout<
因为char只有一个字符,后者会覆盖前者。
2、char * src表示字符串
char *src="qwqewqe";
cout<
这里如果想使用printf输出,只能使用src,不能加&
3、char src[]表示字符串
char src[]="qwertyu";
使用src[i]获取第i个字符:
cout<
cout<< src<
cout<< &src<
4.
char dst[]="fsdfsd";//这里的字符串作为局部变量,都在栈区,可以被改变,字符串中的单个字符可被改变
char *src="fsdfsd";//这里的字符串作为常量,放在常量区(不能改变),而dst放在栈区,当改变字符串的值时程序会崩溃,如果改的时候就直接改掉整个字符串
例如 执行:dst[0]='1'; 没有问题
但是执行 src[0]='1'; 程序就会崩溃!!
因此若调用函数对字符串进行修改时,应该定义成dst[]的形式,而不能是*dst的形式!!
也就是说,char*其实是是const char 类型,而char[]其实是char const类型