B2117 整理药名

· · 题解

题目大意

输入数字 n,并输入 n 个字符串,将每个字符串改写成除开头字母大写外,其余字母小写的形式并输出,其它字符不变。

难点:大小写转化。

这道题我们可以定义字符串并用for循环解决,再用上大写转小写和小写转大写的方法,如下所示:

//小写转大写
if(s[0]>='a'&&s[0]<='z')
    s[0]-=32;
//大写转小写
if(s[0]>='A'&&s[0]<='Z')
    s[0]+=32;
实在不理解的可以看表格: ![](http://www.elecfans.com/article/UploadPic/2009-6/200963010427214.jpg) 代码 ------------ ```cpp #include<bits/stdc++.h> using namespace std; int main() { int n; cin>>n; string s; for(int i=1;i<=n;i++) { cin>>s; if(s[0]>='a'&&s[0]<='z') s[0]-=32; for(int j=1;j<=s.size()-1;j++) if(s[j]>='A'&&s[j]<='Z') s[j]+=32; cout<<s<<endl; } return 0; } ```