字符串和字符的概念与区别

字符串:是由双引号引起来的一串字符字面常量。例如"abcdef"就是一个字符串。

字符:是由单引号引起来的单个字符字母常量。例如'a'  'b' 'c'就是字符。

字符串不同之处字符串的结束标志是一个\0的转义字符。(这是字符没有的特征)

下面是我的编程与调试:

char arr1[] = "abc";

char arr2[] = { 'a','b','c' };

 如图所示,经过调试可以看见arr1字符串常量的是有\0,相反arr2就没有,这就是两者的区别,让我再来试一试打印,再看有何区别。

char arr1[] = "abc";

char arr2[] = { 'a','b','c' };

printf("%s\n", arr1);

printf("%s\n", arr2);

%s是打印字符串的 直到找到\0才会终止打印 。

所以在打印arr1数组时,只会打印abc因为后面数组后面隐藏着\0,相反arr2数组会打印乱码字体,因为%s在打印过程中在找\0,直到找到才会停止,所以这就是原因。

如果不想出现乱码字体的出现,只需在arr2数组中添加一个\0。

char arr1[] = "abc";

char arr2[] = { 'a','b','c','\0'};

printf("%s\n", arr1);

printf("%s\n", arr2);

strlen是专门来求字符串长度的库函数,头文件是<string.h>

接下来我们就来求一下arr1与arr2数组的字符串长度:

char arr1[] = "abc";

char arr2[] = { 'a','b','c'};

int len=strlen(arr1);

printf("%d\n", len);

len=strlen(arr2);

printf("%d\n", len);

 

如图所示,是3和15,为什么会这样呢?因为strlen统计\0之前的字符个数,arr2是一个随机值,跟上面原因一样,直到找到\0,才会停止,所以15是一个随机值。

 

  • 12
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值