c语言数组与字符串,C语言字符数组

  c语言数组与字符串,C语言字符数组

  字符和字符串 C语言教程 C语言系列教程

  第10章字符数组和字符串1。字符数组和字符串的重新定义。字符数组是字符串吗?有人说是,因为书上写的,老师教的。潇雅不敢说书或老师错了,但至少可以说,许多初学者混淆了这两个概念。所以这里就把这两个概念搞清楚了。

  字符数组,完全称为字符类型数组。字符数组不一定是字符串。是最后一个字符为空的字符数组。该字符串必须是字符数组。数组的长度是固定的,任何一个字符都可以为空。字符串只能以NULL结尾,后续字符不属于该字符串。rlen()等字符串函数完全适用于字符串,但不适用于不是字符串的字符数组。

  #包含stdio.h

  #包含字符串. h

  int main(void)

  //这是将初始值赋给字符数组的方法

  char cArr[]={Q , U , A , N , X , U , E };

  //这是将初始值赋给字符串的方法

  char sArr[]=全学;

  //用sizeof()求长度

  printf( cArr=% d \ n 的长度,sizeof(cArr));//长度是7

  printf( sArr的长度=%d\n ,sizeof(sArr));//长度为8,最后一位为空

  //用printf的%s打印内容

  printf( cArr=% s \ n 的内容,cArr);//无法正确显示

  printf( sArr=% s \ n 的内容,sArr);//可以正确显示

  //用strlen()求长度

  Printf(长度为 carr=%d\n ,strlen(cArr));//结果不正确

  printf( sArr长度=%d\n ,strlen(sArr));//NULL不在计算范围内

  返回0;

  }从上面的例子来看,注意以下几点:

  char sArr[]=全学;这样,在编译结束时会自动添加一个空字符。空字符,即 \0 ,在ASCII表中排在第一位,用十六进制表示为0x00。sizeof()运算符寻求字符数组的长度,而不是字符串的长度。strlen()函数寻找字符串长度,而不是字符数组。它不适用于字符串以外的类型。char sArr[]=全学;也可以写成char sArr[8]=全学;(注:是8而不是7)二。字符串数组字符串数组是一个二维字符数组。同理,二维字符数组不一定是字符串数组。

  #包含stdio.h

  int main(void)

  int I;

  //这是给字符数组赋初值的方法,维度:4x2

  char cArr[][2]={{Q , U},

  {A , N},

  {X , U},

  {E , \ 0 } };

  //这是给字符串数组赋初值的方法,维度:4x3

  char sArr[][3]={ 曲,安,徐, e };

  //用sizeof()求长度

  for(I=0;i i ) {

  printf(%d: %d %d\n ,I,sizeof(cArr[i]),sizeof(sArr[I]);

  printf([%s] [%s]\n ,cArr[i],sArr[I]);

  返回0;

  }从上面可以看到,cArr[i]的长度是2,sArr[i]的长度是3,因为多了一个空字符。输出cArr[i]时,因为中间没有空字符,所以一直显示到出现NULL。

  3.在字符数组和字符串数组转换后的字符数组中插入一个空字符。空字符的前面(包括空字符)成为字符串。通常,空字符被插入到有效字符的末尾。

  #包含stdio.h

  #包含字符串. h

  int main(void)

  //因为末尾有NULL,所以这就成了一个字符串

  char cArr[]={Q , U , A , N , X , U , \ 0 };

  //因为少定义了一位,末尾也没有空,所以这就成了一个字符数组。

  char sArr[7]=全学;

  //最后一个元素没有赋值

  char tArr[16]= www . quan Xue . cn ;

  //用sizeof()求长度

  printf(cArr: -,-\n ,strlen(cArr),sizeof(cArr));

  printf(sArr: -,-\n ,strlen(sArr),sizeof(sArr));

  printf(tArr: -,-\n ,strlen(tArr),sizeof(tArr));

  //赋值tArr的最后一个元素,字符串变成字符数组。

  塔尔[15]=!;

  //作为字符数组,将显示16个字符

  for(I=0;i i ) printf(%c ,tArr[I]);//字符数组的显示方法

  //作为字符串,将显示14个字符。

  printf(\n%s\n ,tArr);//字符串的显示方法

  返回0;

  }四。数组的输入输出“gets()、puts()”getchar()和putchar()函数是单个字符的输入输出,GETS()和PUTS()是字符串的输入输出,也是标准函数。它们在stdio.h中定义

  #包含stdio.h

  int main(void)

  char str[80],* p;

  p=gets(str);

  看跌期权(p);

  卖出(str);

  printf( p=% p的地址,str=%p\n 的地址,p,str);

  返回0;

  }

郑重声明:本文由网友发布,不代表盛行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算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: