返回介绍

入门

基础

进阶

12. 字符串的基本概念

发布于 2024-10-07 02:37:14 字数 6083 浏览 0 评论 0 收藏 0

字符串的基本概念

  • 字符串是位于双引号中的字符序列

  • 在内存中以“\0”结束,所占字节比实际多一个

字符串的初始化

  • 在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。
  • 当把一个字符串存入一个数组时,会把结束符‘\0’存入数组,并以此作为该字符串是否结束的标志。
  • 有了‘\0’标志后,就不必再用字符数组 的长度来判断字符串的长度了
  • 初始化
    char name[9] = "lnj"; //在内存中以“\0”结束, \0ASCII码值是0
    char name1[9] = {'l','n','j','\0'};
    char name2[9] = {'l','n','j',0};
    // 当数组元素个数大于存储字符内容时, 未被初始化的部分默认值是0, 所以下面也可以看做是一个字符串
    char name3[9] = {'l','n','j'};
  • 错误的初始化方式
    //省略元素个数时, 不能省略末尾的\n
    // 不正确地写法,结尾没有\0 ,只是普通的字符数组
    char name4[] = {'l','n','j'};

     //   "中间不能包含\0", 因为\0是字符串的结束标志
     //    \0的作用:字符串结束的标志
    char name[] = "c\0ool";
     printf("name = %s\n",name);
输出结果: c

字符串输出

  • 如果字符数组中存储的是一个字符串, 那么字符数组的输入输出将变得简单方便。

  • 不必使用循环语句逐个地输入输出每个字符

  • 可以使用printf函数和scanf函数一次性输出输入一个字符数组中的字符串

  • 使用的格式字符串为“%s”,表示输入、输出的是一个字符串 字符串的输出


  • 输出

  • %s的本质就是根据传入的name的地址逐个去取数组中的元素然后输出,直到遇到\0位置

char chs[] = "lnj";
printf("%s\n", chs);
  • 注意点:

  • \0引发的脏读问题

char name[] = {'c', 'o', 'o', 'l' , '\0'};
char name2[] = {'l', 'n', 'j'};
printf("name2 = %s\n", name2); // 输出结果: lnjcool

  • 输入
char ch[10];
scanf("%s",ch);
  • 注意点:

  • 对一个字符串数组, 如果不做初始化赋值, 必须指定数组长度

  • ch最多存放由9个字符构成的字符串,其中最后一个字符的位置要留给字符串的结尾标示‘\0’
  • 当用scanf函数输入字符串时,字符串中不能含有空格,否则将以空格作为串的结束符

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文