1393 - 首字母大写
时间限制 : 1 秒
内存限制 : 32 MB
对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。
在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\t')、回车符('\r')、换行符('\n')。
题目输入
输入一行:待处理的字符串(长度小于100)。
题目输出
可能有多组测试数据,对于每组数据,
输出一行:转换后的字符串。
输入/输出样例
输入格式
if so, you already have a google account. you can sign in on the right.
输出格式
If So, You Already Have A Google Account. You Can Sign In On The Right.
C语言解答
#include<stdio.h> #include<string.h> int main() { char a[100],b[101]; int i,j; while(gets(a)) { b[0]=' '; for(i=0,j=1;i<strlen(a);i++,j++) b[j]=a[i]; for(i=0;i<strlen(a)+1;i++) if(b[i]==' '&&b[i+1]>='a'&&b[i+1]<='z')b[i+1]-=32; for(i=1;i<strlen(a)+1;i++) printf("%c",b[i]); printf("\n"); } return 0; }
C++解答
#include <stdio.h> int main(){ char str[110] = " "; // 注意这里先将字符串初始化为一个空格,而非空串 while(gets(str+1)){ // 注意这里读取字符时,存储从第一个字符开始,而不是字符串的开头 int i=1; // 注意这里下标也从 1 开始 while(str[i]){ if((str[i-1]==' ' || str[i-1]=='\t') && 'a'<=str[i] && str[i]<='z'){ str[i] -= 32; } i++; } puts(str+1); // 注意这里输出也是从第一个位置开始,而非是字符串的起始位置 } return 0; }
Python解答
# coding=utf-8 import sys for string in sys.stdin.readlines(): for i in range(len(string)): if(string[i-1] in [' ','\t','\r','\n']): print(string[i].upper(),end='') else: print(string[i],end='')