关于网友提出的“ 求大神帮忙看看哪里错了,为什么错了”问题疑问,本网通过在网上对“ 求大神帮忙看看哪里错了,为什么错了”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 求大神帮忙看看哪里错了,为什么错了描述:
c
求大神帮忙看看哪里错了,为什么错了,怎么改我的代码
#include
#include
char str[1000];
int main()
{
int num=0;
scanf("%d",&num);
fflush(stdin);
for(int i=0;i<>
{
char s[101];
gets(s);
for(int j=0;j<>
{
if(s[j]>='A'&&s[j]<='Z')
{
s[j]+=32;
str[strlen(str)]=s[j];
}
else
{
if(s[j]>='a'&&s[j]<='z')
{
s[j]-=32;
str[strlen(str)]=s[j];
}
}
}
str[strlen(str)]='#';
}
for(int i=0;i<>
{
if(str[i]!='#'&&str[i]>='A'&&str[i]<='z')
{
printf("%c",str[i]);
}
else
{
if(str[i]=='#')
{
printf("\n");
}
}
}
return 0;
}
解决方案1:
楼主以后注意代码缩进,以下供楼主参考:
解决方案2:
#include
#include
char str[1000];
int main()
{
int num=0;
int i = 0;//兼容C99前的标准,不在for内定义变量
int j = 0;
int index = 0;//用index代替strlen提高效率
scanf("%d",&num);
fflush(stdin);
for(i=0;i<>
{
char s[101]={0};//局部变量应初始化
int size = sizeof(s);
//gets(s);
if (NULL == fgets((char*)s,size,stdin))
{
printf("can't read!\r\n");
continue;
}
printf("we get:%s\n",s);
s[100]='\0';//防止溢出
for(j=0;j<>
{
if(s[j]>='A'&&s[j]<='Z')
{
s[j]+=32;
str[index]=s[j];
index++;
}
else if(s[j]>='a'&&s[j]<='z')
{
s[j]-=32;
str[index]=s[j];
index++;
}
}
str[index]='#';
index++;
}
for(i=0;i<>
{
if(str[i]!='#'&&str[i]>='A'&&str[i]<='z')
{
printf("%c",str[i]);
}
else if(str[i]=='#')
{
printf("\n");
}
}
return 0;
}
你是想说什么错了?输出正常啊!大写转换小写,或者小写转换大写都OK哦。