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

百思不得其解 关于strlen,该怎么解决

2013-07-09 
百思不得其解关于strlen#include iostreamusing namespace std#include cstdio#include cstringint

百思不得其解 关于strlen

#include <iostream>
using namespace std;
#include <cstdio>
#include <cstring>
int main()
{
    char s[]={"\\141\141abc\t"};
    cout<<strlen(s)<<endl;
}



为什么上面的这个输出为9,
下面的这个输出为10啊?
#include <iostream>
using namespace std;
#include <cstdio>
#include <cstring>
int main()
{
    char s[]={"\\141\109abc\t"};
    cout<<strlen(s)<<endl;
}
strlen C
[解决办法]
转义字符“\ooo"要求三位八进制数字,被解释为内码值为该8进制数字的字符

"\141"被解释为8进制数字141所表示的字符

"\109"中,9不是八进制数字,所以被解释为"\10"和字符'9',成了两个字符。
[解决办法]
9 超出 8 进制范围了

热点排行