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);
}
}
修改如下,改动处见注释,供参考:
#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()
方法去除末尾的空格并输出结果。
需要注意的是,由于题目要求输出的结果字符串中单词之间用空格分隔,因此在拼接每个单词时,需要在单词后面加上一个空格。另外,由于单词首字母已经被转为大写,因此在拼接每个单词时,只需要将单词的首字母和后面的部分拼接在一起即可。
不知道你这个问题是否已经解决, 如果还没有解决的话:在这个代码中,可以了解到 数组初始化的两个方式, getchar(); 的用法.