发布网友 发布时间:2022-04-26 02:24
共3个回答
热心网友 时间:2022-06-20 01:17
int main()
{char ch;
printf("输入一串字符串(以#号结束):\n");
ch=getchar();
while(ch!='#')
{ if ((ch>='a')&&(ch<='z'))
{ch=ch-32;}
else if ((ch>='A')&&(ch<='Z'))
{ch=ch+32;}
putchar(ch);
ch=getchar();
}
}追问把你的复制可以,但是我把我的改还是不行?
热心网友 时间:2022-06-20 01:18
在asc码中,大小写字符分别连续存储。所以,相同字符的大小写差值是相同的,这个差值是十进制的32。
在不记得这个差值的情况下,可以用'a'-'a'来表示。
于是,大写转为小写,可以写作
c
=
c-('a'-'a');
或
c
=
c+32;
小写转为大写,可以写作
c
=
c-('a'-'a');
或
c=c-32;
热心网友 时间:2022-06-20 01:18
挺多小问题的 对照着改吧 就可以了
#include<stdio.h>
int main()
{char ch[20];
printf("输入一串字符串(以#号结束):\n");
gets(ch);
int i =0;
while(ch[i]!='#')
{
if ((ch[i]>='a')&&(ch[i]<='z'))
{ch[i]=ch[i]-32;
}
else if ((ch[i]>='A')&&(ch[i]<='Z'))
{
ch[i]=ch[i]+32;
}
putchar(ch[i]);
i++;
}
}