编程问题(以下输出有误吗)

来源:百度知道 编辑:UC知道 时间:2024/09/25 05:30:01
#include <iostream>
#include<string>
#include<cstring>
int main()
{
using namespace std;
char charr[20];
string str;
cout<<"length or atring in charr before input;"
<<strlen(charr)<<endl;
return(0)
}

输出结果length or atring in charr before input:27
charr没有赋值为什么strlen(charr)还输出27呢,它总共也就20个数字就是赋值也不能出27个字符呢

#include <iostream.h>
#include <string.h>
int main()
{
char charr[20]="adasd";
cout<<"length or atring in charr before input:"<<strlen(charr)<<endl;
return(0);
}
这样就会变成5;
当你没有赋值时,系统会自动向后搜索指向\0的指针,这和下标无关!不同电脑分区大小不同,也就是说,不同电脑\0的位置不同,比如我用你这个程序就输出了23。

之前的程序没关闭吧..关了试试... 要不就重新开下 工具试试

那个27没关系的,因为你没有赋值给charr这个数组,导致其值未知,系统就随机输出一个数字.你在另外的电脑试下,看还是输出27吗

......
#include <iostream>
#include<string>
#include<cstring>
using namespace std;//这句好像应该在这里。。。
int main()
{
char charr[20];
string str;
cout<<"length or atring in charr before input;"
<<strlen(charr)<<endl;
return(0)
}
你定义那个string str干什么?又没使用
然后出现这样的情况有可能是没赋值的缘故,和编译器有关系