首页 > 技术文章 > [题解]-整理药名

littlefrog 2019-04-24 17:33 原文

题目:

医生在书写药品名的时候经常不注意大小写,格式比较混乱。现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式,即药品名的第一个字符如果是字母要大写,其他字母小写。如将"ASPIRIN""aspirin"整理成"Aspirin"

输入格式

第一行一个数字 n,表示有 n 个药品名要整理,n 不超过 100。

接下来 n 行,每行一个单词,长度不超过 20,表示医生手书的药品名。药品名由字母、数字和-组成。

输出格式

n 行,每行一个单词,对应输入的药品名的规范写法。

输出时每行末尾的多余空格,不影响答案正确性

思路

先输入n,在执行n次算法核心

算法核心:

字符串处理(边处理便输出)

char a = 'a';
char b = 'a+32';
cout<<b<<endl;
输出: A

以上为大小写演示

代码:

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    ios::sync_with_stdio(0);
    cin>>n;
    std::string a;
    while (n--) {
        cin>>a;
        int len = a.length();
        for(int i = 0;i<len;++i) {
            if(i==0) {
                if(a[i]>='a'&&a[i]<='z') {
                    a[i]-=32;
                    cout<<a[i];
                }
                else if(a[i]>='A'&&a[i]<='Z') {
                    cout<<a[i];
                }
                else {
                    cout<<a[i];
                }
            } else {
                if(a[i]>='a'&&a[i]<='z') {
                    cout<<a[i];
                }
                else if(a[i]>='A'&&a[i]<='Z') {
                    a[i]+=32;
                    cout<<a[i];
                } else {
                    cout<<a[i];
                }
            }
        }
        cout<<endl;
    }
    return 0;
}

推荐阅读