整理药名

GitHub跳转原题关系图返回列表

首字符单独转大写,其余字符统一转小写,规范化药品名称。

OJ: noi_openjudge

题目 ID: ch0107-15

难度:入门

标签:字符串模拟python

日期: 2026-07-30 23:01

题意

将每个药名整理为首字符若为字母则大写,其余字母小写的形式。

思路

把第一个字符和后缀分开:name[0].upper() 处理首字符,name[1:].lower() 处理其余字符。首字符为数字或连字符时 upper() 不改变它。

代码

Python代码

python
count = int(input())

for _ in range(count):
    name = input().strip()
    print(name[0].upper() + name[1:].lower())

C++代码

cpp
#include <cstdio>
#include <cstring>

int n;
char str[500];
int main(){
    scanf("%d",&n);
    int i,j;
    for (i=1;i<=n;i++){
        scanf("%s",str+1);
        int len = strlen(str+1);
        if( str[1] >='a' && str[1] <='z'){
            printf("%c",str[1]+'A'-'a');
        }
        else
            printf("%c",str[1]);

        for (j=2;j<=len;j++){
            if( str[j] >='A' && str[j] <='Z'){
                printf("%c",str[j]+'a'-'A');
            }
            else
                printf("%c",str[j]);

        }
        printf("\n");
    }
    return 0;
}

复杂度

设所有药名总长度为 nn,时间和输出空间复杂度均为 O(n)O(n)

总结

格式化首字符时,先分割首字符和剩余部分比复杂条件判断更直接。