中信建投同花顺2.3安卓:谁能帮我改改??

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/05 06:58:29
编写一程序,实现将一个字符串str1中的小写字母变为大写字母、大写字母保持不变的方式存入另一个字符串str2中,并显示str1 和str2的内容。
#include <iostream.h>
#include <ctype.h>
void main()
{char str1[4],str2[sizeof(str1)];
cin>>str1;
for(int i=0;i<3;i++)
{str2[i]=toupper(str1[i]) ;}
for(int j=0;j<sizeof(str1);j++)
cout<<str2[j];}在VC++6.0中执行会出现乱码,好象是因为STR1的范围问题 怎么解决啊 急需
str1数组的字符串是后输入的 编程序时不应给定范围吧 我给了个大范围结果就会有乱码 怎么办啊

#include <iostream.h>
#include <ctype.h>
void main()
{char str1[4],str2[sizeof(str1)];
for(int i=0;i<sizeof(str1);i++)
{
cin>>str1[i];
}
for(int i=0;i<3;i++)
{str2[i]=toupper(str1[i]) ;}
for(int j=0;j<sizeof(str1);j++)
cout<<str2[j];}

VC.NET中编译通过:
问题看注释

#include <iostream>
using namespace std;
#include <ctype.h>

void main()
{
char str1[4],str2[sizeof(str1)];
int i=0;
while(i<sizeof(str1)) //输入这里也有些问题
{
cin>>str1[i++];
}
for(int i=0;i<4;i++) //这里的边界值应该是有问题
{
str2[i]=toupper(str1[i]) ;
}
for(int j=0;j<sizeof(str1);j++)
cout<<str2[j];
cout<<endl;
}