美文网首页
C语言的字符数组和字符串

C语言的字符数组和字符串

作者: KardelShaw | 来源:发表于2021-05-21 22:25 被阅读0次

字符串用字符数组来存储

const int ARRAY_SIZE = 40;
char string[ARRAY_SIZE];
scanf("%s", string);
printf("%s", string);
// 输入:
aaa

// 输出:
aaa

如果scanf函数的转换说明用%c替代%s,那么它只会读取输入的第一个字符

const int ARRAY_SIZE = 40;
char string[ARRAY_SIZE];
scanf("%c", string);
printf("%s", string);
// 输入:
aaa

// 输出:
a##########...     // a后的#表示不确定的字符

原因:使用%c只会读取输入的第一个'a',然后存储到string[0],后面的两个'a'不会被读,所以string[1]string[39] 后面的内容无法确定,打印内容取决于原先这块内存存储的是什么内容。


实际上,上面的printf("%s", string)会打印出存储在string[0]后面不定数量的字符,直到找到空字符 '\0' 为止。这是%s转换说明的结果。

字符串一定是字符数组,字符数组不一定是字符串。
它们的唯一区别在于:字符串末尾有空字符'\0',字符数组没有。


例:

    const int ARRAY_SIZE = 40;
    char char_array[ARRAY_SIZE];
    char string[ARRAY_SIZE];

    // 字符数组 char_array
    char_array[0] = 'a';
    char_array[1] = 'a';
    char_array[2] = 'a';
    
    // 字符串 string
    string[0] = 'a';
    string[1] = 'a';
    string[2] = 'a';
    string[3] = '\0';        // *唯一区别

    printf("char_array = %s\n", char_array);
    printf("string = %s\n", string);
// 输出:
char_array = aaa######.....             // 该输出原因解释同上
string = aaa

字符串的初始化赋值方法:

char str[40] = "aaa";
// 或
char str[] = "aaa";

可以指定或不指定字符数组大小。

相关文章

  • C语言- 字符、字符数组

    字符数组和字符串 C语言中没有字符串这种数据类型,C语言中通过char型数组来替代字符串的功能。C语言中的字符串一...

  • C 和 Java 中字符串和字符数组的对比

    1. C 和 Java 中字符串和字符数组的对比 实现原理 在 C 语言中,字符串和字符数组本质上都是一块连续的内...

  • 2018-05-13

    C语言:c语言中没有字符串类型,也没有字符串变量,字符串是放在字符型数组中的。 C语言数变量类型:整型、浮点型、v...

  • C语言字符串的基本使用

    字符串基本使用 可以使用数组来保存字符串 字符串变量和普通的字符数组是有一定区别的 C语言规定:字符串必须以\0 ...

  • 39_字符串类的创建(上)

    关键词: 0. 历史遗留问题 C语言不支持真正意义上的字符串 C语言用字符数组和一组函数实现字符串操作 C语言不支...

  • C++中数组操作符的重载

    字符串类的兼容性 存在的一些历史遗留问题C语言不支持真正意义上的字符串C语言用字符数组和一组函数实现字符串操作C语...

  • redis sds

    简单动态字符串 Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串)...

  • C-字符串

    字符串 在 C 语言中,字符串实际上是使用 null 字符 '\0' 终止的一维字符数组。C 编译器会在初始化数组...

  • C语言基础教程之字符串

    C语言字符串 C 语言中,字符串实际上是使用null字符 '' 终止的一维字符数组。因此,一个以 null 结尾的...

  • 2.简单动态字符串

    简单动态字符串 C语言传统的字符串表示,是以空字符('\0')结尾的字符串数组,下面简称为C字符串。 Redis自...

网友评论

      本文标题:C语言的字符数组和字符串

      本文链接:https://www.haomeiwen.com/subject/qrnwjltx.html