首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

在线的朋友 帮忙看看strlen的有关问题

2013-06-26 
在线的朋友 帮忙看看strlen的问题char test[] \x09\x08\x00printf(%d\n, strlen(test))上面的结果

在线的朋友 帮忙看看strlen的问题

char test[] = "\x09\x08\x00";
printf("%d\n", strlen(test));

上面的结果 strlen(test) = 2;

我要的结果是3 怎么办呢
[解决办法]
这个方法应当包治百病了吧
#include <iostream>
#include <string>

int main(int argc, char* argv[]) {
  const char test[] = "\x09\x08\x00";
  std::cout << sizeof(test) - 1 << std::endl;
}

[解决办法]
你要的应该是想输出数组的长度:

char test[3] = "\x09\x08\x00";//不写3的话,编译器会尝试内存对齐
printf("%d\n", strlen(test));//输出字符串长度,2
printf("%d\n", sizeof(test));//输出数组长度, 3


引用:
char test[] = "\x09\x08\x00";
printf("%d\n", strlen(test));

上面的结果 strlen(test) = 2;

我要的结果是3 怎么办呢

[解决办法]
你想要3,那就直接printf("%d" ,3);
可strlen返回不了3,原因上边都说完了。

热点排行