下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

简单分析C语言中的字符数组和字符串

作者:课课家教育     来源: http://www.kokojia.com点击数:501发布时间: 2016-11-30 10:31:30

标签: 编程语言C语言字符数组和字符串

大神带你学编程,欢迎选课

  在了解了数组的基本概念后,C语言数组中的其中一个重要学习点便是字符数组和字符串。那么什么是C语言中的字符数组和字符串呢?它的作用又是什么呢?下面课课家小编就带大家了解字符数组和字符串的含义和作用。

图1

  所谓字符数组,简单来说就是用来存放字符的数组称为字符数组,比如:

  chara[10];//一维字符数组

  charb[5][10];//二维字符数组

  charc[20]={'c','','p','r','o','g','r','a','m'};//给部分数组元素赋值

  chard[]={'c','','p','r','o','g','r','a','m'};//对全体元素赋值时可以省去长度

  字符数组实际上是一系列字符的集合,也就是字符串(String)。在C语言中,没有专门的字符串变量,没有string类型,通常就用一个字符数组来存放一个字符串。在C语言中规定,我们可以将字符串直接赋值给字符数组,比如:

  charstr[30]={"c.biancheng.NET"};

  charstr[30]="c.biancheng.net";//这种形式更加简洁,实际开发中常用

  数组第0个元素为'c',第1个元素为'.',第2个元素为'b',后面的元素以此类推。也可以不指定数组长度,比如:

  charstr[]={"c.biancheng.net"};

  charstr[]="c.biancheng.net";//这种形式更加简洁,实际开发中常用

  在C语言中,字符串总是以'\\0'作为串的结束符。上面的两个字符串,编译器已经在末尾自动添加了'\\0''\\0'是ASCII码表中的第0个字符,用NUL表示,称为空字符。通常情况下该字符既不能显示,也不是控制字符,输出该字符不会有任何效果,它在C语言中仅作为字符串的结束标志。puts和printf在输出字符串时会逐个扫描字符,直到遇见'\\0'才结束输出。具体大家可以观察下面的代码:

  #include<stdio.h>

  intmain(){

  inti;

  charstr1[30]="http://c.biancheng.net";

  charstr2[]="CLanguage";

  charstr3[30]="Youareagood\\0boy!";

  printf("str1:%s\\n",str1);

  printf("str2:%s\\n",str2);

  printf("str3:%s\\n",str3);

  return0;

  }

  运行结果:

  str1:http://c.biancheng.net

  str2:CLanguage

  str3:Youareagood

  str1和str2很好理解,编译器会在字符串最后自动添加'\\0',并且数组足够大,所以会输出整个字符串。对于str3,由于字符串中间存在'\\0',printf()扫描到这里就认为字符串结束了,所以不会输出后面的内容。

  此时我们需要注意的地方是,用字符串给字符数组赋值时由于要添加结束符'\\0',数组的长度要比字符串的长度(字符串长度不包括'\\0')大1。比如:

  charstr[]="Cprogram";

  该数组在内存中的实际存放情况为9(图1):

图1

图1

  字符串长度为9,数组长度为10。

  本次简单分析C语言中的字符数组和字符串的教程到此暂告一段落,如果以后有补充的话小编会在此继续补充,同时也欢迎大家继续补充。最后希望这次的教程对大家学习C语言能起到一定的帮助!

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程