意外的结果,求解释!!!
using namespace std;
#include <iostream>
#include"stdio.h"
#include <string.h>
int main(int argc, char *argv[])
{
char s[12] = {'a','b','c','a','b','c','a','b','c','a','b','c'};
cout<<"strlen(s):"<<strlen(s)<<endl;
cout<<"s:"<<s<<endl;
getchar();
return 0;
}
c C++
[解决办法]
strlen从开始的字符开始扫描,直到碰到结束符'\0'才结束扫描,返回计数器的值。
如果你这样的话,就能得到合理的结果:
char s[12+1] = {'a','b','c','a','b','c','a','b','c','a','b','c','\0'};