求大神帮忙看看错哪了,为什么错了
求大神帮忙看看哪里错了,为什么错了
求大神帮忙看看哪里错了,为什么错了,怎么改
我的代码
#include<stdio.h>
#include<string.h>
char str[1000];
int main()
{
int num=0;
scanf("%d",&num);
fflush(stdin);
for(int i=0;i<num;i++)
{
char s[101];
gets(s);
for(int j=0;j<strlen(s);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<strlen(str);i++)
{
if(str[i]!='#'&&str[i]>='A'&&str[i]<='z')
{
printf("%c",str[i]);
}
else
{
if(str[i]=='#')
{
printf("\n");
}
}
}
return 0;
}
------解决思路----------------------
你是想说什么错了?输出正常啊!大写转换小写,或者小写转换大写都OK哦。
------解决思路----------------------
楼主以后注意代码缩进,以下供楼主参考:
求大神帮忙看看哪里错了,为什么错了,怎么改
我的代码
#include<stdio.h>
#include<string.h>
char str[1000];
int main()
{
int num=0;
scanf("%d",&num);
fflush(stdin);
for(int i=0;i<num;i++)
{
char s[101];
gets(s);
for(int j=0;j<strlen(s);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<strlen(str);i++)
{
if(str[i]!='#'&&str[i]>='A'&&str[i]<='z')
{
printf("%c",str[i]);
}
else
{
if(str[i]=='#')
{
printf("\n");
}
}
}
return 0;
}
------解决思路----------------------
你是想说什么错了?输出正常啊!大写转换小写,或者小写转换大写都OK哦。
------解决思路----------------------
楼主以后注意代码缩进,以下供楼主参考:
#include<stdio.h>
#include<string.h>
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<num;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<strlen(s)&&index<sizeof(str)-1;j++)//防止str溢出
{
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<index;i++)
{
if(str[i]!='#'&&str[i]>='A'&&str[i]<='z')
{
printf("%c",str[i]);
}
else if(str[i]=='#')
{
printf("\n");
}
}
return 0;
}