#include <stdio.h>
void main()
{
char s[40];
int n,i;
printf("输入字母串:\n");
gets(s);
printf("选择:0,小写输出 1,大写输出:\n");
scanf("%d",&n);
#if (n==1)
{for(i=0;s[i]!='\0';i++)
if (s[i]>96&&s[i]<123)
s[i]-=32;}
#else
{for(i=0;s[i]!='\0';i++)
if (s[i]>64&&s[i]<91)
s[i]+=32;}
#endif
puts(s);
我想先输入字附串,再输入n选择输出的字符串是大写还是小写,但是上面的程序无论输入n是1或0都输出的是小写,请问错在哪里?
如果我改写成if条件语句(如下)则可以,为什么呢?
#include <stdio.h>
void main()
{
char s[40];
int n,i;
printf("输入字母串:\n");
gets(s);
printf("选择:0,小写输出 1,大写输出:\n");
scanf("%d",&n);
if (n==1)
{for(i=0;s[i]!='\0';i++)
if (s[i]>96&&s[i]<123)
s[i]-=32;}
else
{for(i=0;s[i]!='\0';i++)
if (s[i]>64&&s[i]<91)
s[i]+=32;}
puts(s);
}
感谢!