c语言中读取字符串,c++字符串读取

  c语言中读取字符串,c++字符串读取

  Charstr []={v , v , c , a , \ 0 };字符串最好存储在char数组中。将一个值为0的字符(称为空字符)添加到字符串文字量的末尾。由八进制转义字符表示的空字符是“\ 0”。如果表示为整数常量,则为0。结尾的空字符“\ 0”是字符串结尾的“符号”。注意:

  由5个字符组成的文字字符串“VVcat”实际上占用了6个字符的内存空间。文字字符串中间也可以有一个空字符。但是,要注意区分。字面意思“ABC”是字符串,而字面意思“VV\0cat”不是字符串。#包含stdio.h

  int nbsp。主要(无效){

  printf(quot;sizeof(\ quot;vvcat \ quot)nbspnbsp=nbsp% u \ n quot,nbsp。nbspnbspnbsp(无符号)sizeof(quot;vvcat quot));

  printf(quot;sizeof(\ quot;vv \ 0cat \ quot)nbspnbsp=nbsp% u \ n quot,nbsp。nbspnbspnbsp(无符号)sizeof(quot;vv \ 0cat quot));

  }运行结果:

  字符数组的初始化下面三种形式可以实现字符数组的初始化和赋值。1.nbspchar nbsp。str[] nbsp。=nbsp{ #39;V # 39,nbsp。#39;V # 39,nbsp。#39;c# 39;nbsp。#39;a # 39,nbsp。#39;t # 39,nbsp。#39;\0 #39;};

  2.nbspchar nbsp。str[] nbsp。=nbspquotVVcat quot;

  3.nbspchar nbsp。str[] nbsp。=nbspnbsp{ quotVVcat quot};因为初始值的个数决定了数组元素的个数,所以元素个数可以省略。

  除了初始化赋值时,数组的初始值或字符串不能直接赋给数组变量。

  以下三种是错误的赋值方法:char nbspstr[6];

  1.nbspstr nbsp。=nbsp{ #39;V # 39,nbsp。#39;V # 39,nbsp。#39;c# 39;nbsp。#39;a # 39,nbsp。#39;t # 39,nbsp。#39;\0 #39;};

  2.nbspstr nbsp。=nbspquotVVcat quot;

  3.nbspstr nbsp。=nbspnbsp{ quotVVcat quot};如果如下声明,则不会在末尾添加空字符。

  char str[]={V , V , c , a , t };

  以这种方式声明的变量将不会被视为一个字符串,而是一组五个字符,即一个“普通”的数组。正确的分配方法:

  #包含stdio.h

  int nbsp。主要(无效){

  char nbsp。str[6];

  str[0] nbsp。=nbsp#39;V # 39;

  str[1] nbsp。=nbsp#39;V # 39;

  str[2] nbsp。=nbsp#39;c# 39;

  str[3] nbsp。=nbsp#39;A # 39;

  str[4] nbsp。=nbsp#39;T # 39;

  str[5] nbsp。=nbsp#39;\0 #39;

  printf(quot;字符串nbspstr nbsp。对于nbsp\ quot% s \ quot。nbsp\ n quot,nbsp。str);

  返回nbsp。0;

  }运行结果:

  虽然数据长度定义为6,但除了空字符,只能存储5个字符。

  注意:

  如果将 \ 0 放在数组中间的某个位置,将出现以下结果:

  #包含stdio.h

  int nbsp。主要(无效){

  char nbsp。str[6];

  str[0] nbsp。=nbsp#39;V # 39;

  str[1] nbsp。=nbsp#39;V # 39;

  str[2] nbsp。=nbsp#39;\0 #39;nbspnbspnbsp//将“\0”放在下标3的位置

  str[3] nbsp。=nbsp#39;c# 39;

  str[4] nbsp。=nbsp#39;A # 39;

  str[5] nbsp。=nbsp#39;T # 39;

  printf(quot;字符串nbspstr nbsp。对于nbsp\ quot% s \ quot。nbsp\ n quot,nbsp。str);

  返回nbsp。0;

  }运行结果:

  空字符 \ 0 是字符串结尾的“符号”。

  空字符串charname[]=“”;

  chars[]={ \ 0 };没有字符的字符串称为空字符串。内存空间中只有一个空字符,因为即使没有字符,也需要一个空字符来表示结束。

  #包含stdio.h

  int nbsp。主要(无效){

  char nbsp。name[] nbsp。=nbspquotquot;nbsp//初始化数组

  char nbsp。s[] nbsp。=nbsp{ #39;\0 #39;};

  printf(quot;(无符号)sizeof(name) nbsp。=nbsp% u \ n quot,nbsp。(无符号)sizeof(name));

  printf(quot;(无符号)sizeof nbsp。=nbsp% u \ n quot,nbsp。(无符号)sizeof(s));

  printf(quot;请输入名字:quot);

  scanf(quot;% s quot,nbsp。姓名);nbspnbsp//不需要添加

  printf(quot;早上好,nbsp% s nbsp!\ n quot,nbsp。姓名);

  printf(quot;午安,nbsp% 3s nbsp!\ n quot,nbsp。姓名);

  printf(quot;晚上好,nbsp% .3s nbsp!\ n quot,nbsp。姓名);

  printf(quot;夜晚,nbsp% 8s nbsp!\ n quot,nbsp。姓名);

  printf(quot;该睡觉了,nbsp%-8s nbsp;\ n quot,nbsp。姓名);

  返回nbsp。0;

  }运行结果:

  为了从标准输入中读取字符串,需要将scanf函数的转换描述设置为%s,并且还必须传入数组名。

  此外,当scanf函数将从键盘读取的字符串存储到数组中时,它会在末尾添加一个空字符。

  总结:1。%3s的最小输出宽度意味着至少输出3个实际数字。如果省略或实际输出的字符串中的位数超过指定值,将按照实际位数输出。如果设置了-标志,则表示左对齐;否则表示右对齐(空格填充)。2.精度%.3s指定显示位数的上限为3(即不能显示超过指定位数的字符,超过指定位数的字符会被截断)。3.转换说明符s指示输出字符串。也就是说,输出数组的字符,直到空字符的前一个字符。如果未指定精度或精度大于数据长度,则数组必须包含空字符。

  转载请联系作者授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: