在线的朋友 帮忙看看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
[解决办法]
你想要3,那就直接printf("%d" ,3);
可strlen返回不了3,原因上边都说完了。