• C语言中没有字符串这种数据类型,可以通过char的数组来替代;
    • 字符串一定是一个char的数组,但char的数组未必是字符串;
    • 数字0(和字符‘\0’等价)结尾的char数组就是一个字符串,但如果char数组没有以数字0结尾,那么就不是一个字符串,只是普通字符数组,所以字符串是一种特殊的char的数组。
    1. #include <stdio.h>
    2. int main()
    3. {
    4. char c1[] = { 'c', ' ', 'p', 'r', 'o', 'g' }; //普通字符数组
    5. printf("c1 = %s\n", c1); //乱码,因为没有’\0’结束符
    6. //以‘\0’(‘\0’就是数字0)结尾的字符数组是字符串
    7. char c2[] = { 'c', ' ', 'p', 'r', 'o', 'g', '\0'};
    8. //等效于 char c2[] = { 'c', ' ', 'p', 'r', 'o', 'g', 0};
    9. printf("c2 = %s\n", c2);
    10. //字符串处理以‘\0’(数字0)作为结束符,后面的'h', 'l', 'l', 'e', 'o'不会输出
    11. char c3[] = { 'c', ' ', 'p', 'r', 'o', 'g', '\0', 'h', 'l', 'l', 'e', 'o', '\0'};
    12. printf("c3 = %s\n", c3);
    13. return 0;
    14. }