题目描述:
医生在书写药品名的时候经常不注意大小写,格式比较混乱。现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式,即药品名的第一个字符如果是字母要大写,其他字母小写。如将"ASPIRIN"
、"aspirin"
整理成"Aspirin"
。
输入格式
第一行一个数字 n,表示有 n 个药品名要整理,n 不超过 100。接下来 n 行,每行一个单词,长度不超过 20,表示医生手书的药品名。药品名由字母、数字和-
组成。
输出格式
n 行,每行一个单词,对应输入的药品名的规范写法。
解题思路:
按照题目的要求,先判断一下每一个药名的第一个字符是不是小写字母。如果是就转变成大写字母。然后循环判断后面的每一个字符,如果有大写字母就转变成小写字母。主要考察了字符串的基本操作。
#include<iostream>
#include<string>
using namespace std;
string name[100];
int main(){
int n,len = 0;//用len存满足条件的字符串的长度
cin>>n;
cin.get(); //清空缓冲区
for(int i=0;i<n;i++){
getline(cin, name[i]);
}
for(int i=0;i<n;i++){
//首字母如果是小写字母就转换为大写字母
if(name[i].at(0)>='a' && name[i].at(0)<='z'){
//cout<<name[i].at(0)<<" ";
name[i].at(0) -= 32;
}
len = name[i].size();
for(int j=1;j<len;j++){
//如果是大写字母就将其装换为小写字母
if(name[i].at(j)>='A' && name[i].at(j)<='Z'){
name[i].at(j) += 32;
}
}
}
for(int i=0;i<n;i++){
cout<<name[i]<<endl;
}
return 0;
}