本题要求编写程序,对一个以“#”结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出。
输入格式:
输入为一个以“#”结束的字符串(不超过30个字符)。
输出格式:
在一行中输出大小写转换后的结果字符串。
输入样例:
Hello World! 123#
输出样例:
hELLO wORLD! 123
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
题比较简单,我用了两种方法,第一种字符的形式一个一个输,c和c++通用,第二种是以字符串的形式输,只适用于c++
第一种:
#include<bits/stdc++.h>
using namespace std;
int main()
{int i=0;
char ch=getchar(); //一次输入一个字符
while(ch!='#')
{
if(ch<='z' && ch>='a'){
ch=ch-'a'+'A'; //小写变大写
}else if(ch<='Z' && ch>='A'){
ch=ch-'A'+'a'; //大写变小写
}
putchar(ch);
ch=getchar();
}
printf("%c",ch-'#');
return 0;
}
第二种:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
getline(cin,s); //直接以字符串的形式一次全部输入
int i=0;
while(1)
{
if(s[i]=='#')
break; //从第一个字符开始判断,是‘#’结束循环
if(s[i]>='A'&&s[i]<='Z')
s[i]=s[i]-'A'+'a';
else if(s[i]>='a'&&s[i]<='z')
s[i]=s[i]-'a'+'A';
i++;
}
for(i=0;s[i]!='#';i++) //判断条件也可以是i<s.size()-1; 这样就可以不输出最后一个字符#
cout<<s[i];
}