读书人

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

发布时间: 2013-06-26 14:29:32 作者: rapoo

在线的朋友 帮忙看看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,原因上边都说完了。

读书人网 >C++

热点推荐