字符串的几种表示方式有什么区别?

char str[6] = {"A","B","C","D","E","F"}; //"\0" 或者0 --堆栈中 局部变量
char str[] = "ABCDE";                   //编译器末尾填0 常量区
char* str= "ABCDE";                     //常量区
//打印
printf("%s \n",str);
//字符串打印时 遇到 0 才会停止

常用的字符串函数

1、int strlen(char* s)
返回值是字符串S的长度,不包括结束符"/0"
弊端:字符串中英文混合的话。返回的长度有问题,因为中文占用两个字节
2、char* strcpy(char* dest, char* src)
复制字符串src到dest中。返回指针为dest的值
3、char* strcat(char* dest, char* src)
将字符串src添加到dest尾部。返回指针为dest的值
4、int strcmp(char* s1, char* s2)
字符串对比,一样返回0 不一样返回非0

指针函数

本质就是函数,只不过函数的返回类型是某一类型的指针
如:

char* strcpy(char* dest, char* src)
char* strcat(char* dest, char* src)