这个C++程序拿错了?

来源:百度知道 编辑:UC知道 时间:2024/05/13 05:07:21
#include<iostream>
using namespace std;
char toBig (char c);
int main()
{
char arraychar[51];
cout<<"Please int put the chars:(<=50)"<<endl;
cin>>arraychar;

for(int i=0;i<49;i++)
{if(arraychar[i]=='\0')
return 0;
if(arraychar[i]<='z'&&arraychar[i]>='a')
arraychar[i]+='A'-'c';
}
cout<<arraychar;

}
为甚直接就返囬了?
那有个IF啊

你的原意应该是如果遇到串尾符'\0'就跳出循环,输出结果

但是return会导致整个函数直接返回,函数运行终止,
所以:
if(arraychar[i]=='\0')
return 0;
需要改为:
if(arraychar[i]=='\0')
break;

这么再看看:)
#include<iostream>
using namespace std;
char toBig (char c);
int main()
{
char arraychar[51];
cout<<"Please int put the chars:(<=50)"<<endl;
cin>>arraychar;

for(int i=0;i<49;i++)
{if(arraychar[i]=='\0')
break;
if(arraychar[i]<='z'&&arraychar[i]>='a')
arraychar[i]+='A'-'c';
}
cout<<arraychar;

}

int类型主函数遇到return 0就结束了

楼下的和楼下的楼下的,我支持你们哦,哈哈

汗一把,我成楼底下那个了

原因楼上已经说过了。
把 return 0;改成break,即跳出循环;

不要用return。。用break!return不是这样用的。你要表达的意思应该是跳出当前循环用BREAK

都看到那个if了。上面几位想跟你说的是:你还想看到输出结果吧?你想想结果什么时候才会输出?是不是检测到字符串结束?那你字符串结束用\