1393 - 首字母大写

通过次数

0

提交次数

0

时间限制 : 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='')