c语言怎么计算带0的字符数组长度

不如一个字符数组为chara[100]="1234\056789";怎么统计长度... 不如一个字符数组为char a[100]="1234\056789";
怎么统计长度
展开
 我来答
nari_lizw
2014-07-25 · TA获得超过7390个赞
知道大有可为答主
回答量:2075
采纳率:70%
帮助的人:825万
展开全部
strlen(a)得到的实际长度是8,因为里面有\,\056会被认为是转义字符,对应一个字符'.'。这个字符串的正确表示应为"1234\\056789"。'\\'就是想要的\了。具体看看C语言的转义字符规定吧。谭浩强的那本书上就有。
a[100]="1234\\056789",输出的的字符串就是1234\056789,strlen(a)得到的长度是11,不是10,因为\0是两个字符,你要字符串中间有空字符'\0'是不行的,因为这个在C语言中是字符串的结束标志。

当然你在a[100]这样的字符数组里面存多个字符串(也就是里面夹杂有'\0'这样的字符)是可以的,只是计算所有字符的长度就不是标准函数sizeof、strlen这些能做的了。自己想办法还是可以的,把你的具体需求说出来,可以讨论一下。
felithuang
推荐于2017-12-16 · TA获得超过849个赞
知道小有建树答主
回答量:520
采纳率:50%
帮助的人:710万
展开全部

你这种应用很少见到了。不过如果真要算,也可以,从最后开始找到非0的字符,代码如下:

#include<stdio.h>
int csize(char* str, int size)
{
char* pend = str + size - 1;
while (pend >= str && *pend == 0)
{
--pend;
}
return pend - str + 1;
}

void main()
{
char str[100] = "1234\00056789"; // \000是一个字符
printf("%d\n", csize(str, sizeof(str)));
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
推荐于2016-06-05 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:887万
展开全部

1、在C语言中,可以通过库函数strlen来计算字符串的长度,也可以通过循环计数来求取字符串长度。
函数原型:unsigned int strlen(char *str);
功       能:统计字符串str中字符的个数,不包含'\0'
返 回  值:返回字符个数


2、用strlen函数实现:

char str[20];
int len;   // 保存数组的长度
scanf("%s", str);
len = strlen(str);  // 计算字符数组str的长度
注:需将头文件#include<string.h>添加进源文件中。

3、用循环来实现:

char str[20];
int len=0;   // 保存数组的长度
scanf("%s", str);
while(str[len] != '\0')  // 未检测到结束字符
{
    len++;  // 统计字符数组str的长度
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
古装美女
2014-07-25
知道答主
回答量:20
采纳率:0%
帮助的人:15.9万
展开全部
用 sizeof(数组名) 即可得出数组长度了
追问
这样得到的是100,我想得到实际长度10
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天外流星145
2014-07-25
知道答主
回答量:29
采纳率:0%
帮助的人:23.6万
展开全部
#include<stdio.h>
int main()
{
char a[100]="1234\056789";
int i=0;
for (i=0;i<sizeof(a);i++)
{
if('\0'==a[i]&&'\0'==a[i+1])
{
break;
}
}
i+=2;
printf("长度=%d\r\n",i);
return 0;
}
这样行不行?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式