7-174 单词首字母大写

7-174 单词首字母大写
分数 15
作者 颜晖
单位 浙大城市学院
本题目要求编写程序,输入一行字符,将每个单词的首字母改为大写后输出。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。

输入格式:
输入给出一行字符。

输出格式:
在一行中输出已输入的字符,其中所有单词的首字母已改为大写。

输入样例:
How are you?
输出样例:
How Are You?

#include<stdio.h>
int main(){
    char c;
    int cnt=0;//cnt管空格,
    while((c=getchar())!='\n'){
        if(c==' '){
            cnt++;               
        }            
        if((c<='z' && c>='a') && cnt>=1){
            c-=32;
            printf("%c",c);
            cnt=0;
            continue;
        }
        printf("%c",c);
    }
}

img

修改如下,改动处见注释,供参考:

#include<stdio.h>
int main(){
    char c;
    int cnt=0;//cnt管空格,
    while((c=getchar())!='\n'){
        if(c==' '){
            cnt++;
        }
        else if(cnt) { // if((c<='z' && c>='a') && cnt>=1) 修改
            if ((c<='z' && c>='a')) // 修改
                c-=32;
            //printf("%c",c); 修改
            cnt = 0;
            //continue;       修改
        }
        printf("%c",c);
    }
    return 0;
}

用Python:

s = input() # 读入一行字符
words = s.split() # 将字符串按空格分割成单词列表
result = "" # 用于存放结果的字符串
for word in words:
    result += word[0].upper() + word[1:] + " " # 将单词首字母转为大写并拼接到结果字符串中
print(result.strip()) # 去除末尾的空格并输出结果

在这个代码中,首先读入一行字符,并使用 split() 方法将其按空格分割成单词列表。然后,遍历每个单词,将其首字母转为大写并拼接到结果字符串中。最后,使用 strip() 方法去除末尾的空格并输出结果。

需要注意的是,由于题目要求输出的结果字符串中单词之间用空格分隔,因此在拼接每个单词时,需要在单词后面加上一个空格。另外,由于单词首字母已经被转为大写,因此在拼接每个单词时,只需要将单词的首字母和后面的部分拼接在一起即可。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^