在线的朋友 帮忙看看strlen的有关问题
在线的朋友 帮忙看看strlen的问题
上面的结果 strlen(test) = 2;
我要的结果是3 怎么办呢
------解决方案--------------------
这个方法应当包治百病了吧
------解决方案--------------------
你要的应该是想输出数组的长度:
------解决方案--------------------
你想要3,那就直接printf("%d" ,3);
可strlen返回不了3,原因上边都说完了。
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,原因上边都说完了。