定义一个数组,unsigned char str[20],会默认自动添加结束符'\0'吗,

 我来答
kaixingui2012
2015-09-24 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6903万
展开全部
  • C语言中的字符串,应该说是指字符串常量,如:"hello", "how are u"等,这些常量字符串本身在末尾存有一个\0,因\0是不可见字符,所以,看不到。

  • 可以把字符串存储到一个字符数组中,存储方法分为三种:

  • 1、定义字符数组,用常量字符串进行初始化

    • char str1[10]="hello";      //sizeof(str1)=10

    • char str2[]="how are u" ;   //未指定数组大小,按初始化字符串实际大小开辟数组空间,sizeof(str2)=10 ; 9个字符+1个\0  通过此方法,可以验证常量字符串中含有\0

  • 2、定义字符数组,不初始化,采用字符串赋值操作函数进行赋值

    • char str[100];

    • strcpy( str, "hello"); //字符串拷贝

    • sprintf(str, "%s world", "hello"); //格式化输入,得到hello world

    • 以上函数会自动在字符串尾赋值字符串结束符

  • 3、定义字符数组,不初始化,采用循环,逐位赋值字符,并在结束位置赋值\0

    • char str1[10];

    • char str2[]="hello" ;

    • int i,j;

    • for(i=0,j=0;str2[i]!='\0';i++ ) //遍历字符串str2

    • if ( i%2 ) //只取偶数位

    • str1[j++]=str2[i];

    • str1[j]='\0'; //手动赋值结束符

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式