加载中...

浙江理工大学入队200题——13I

问题 I: 零基础学C/C++144——首字母变大写

题目描述

输入一个英文句子,将每个单词的第一个字母改成大写字母。

输入

输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。

输出

请输出按照要求改写后的英文句子。

样例输入 Copy

i like acm
i want to get an accepted

样例输出 Copy

I Like Acm
I Want To Get An Accepted

提示

aa,bb应该变成Aa,bb而不是Aa,Bb

题解

我们先把第一个字母变成大写,然后如果遇到空格,空格后的第一个字符就要大写。
只需要判断空格后面是不是一个字符就可以了,这样一想是不是很简单呢( (┙>∧<)┙へ┻┻~才不简单)

代码(AC)

点击查看代码
#include <stdio.h>
#include <string.h>
int main()
{
	char str[120];
	while (gets(str)!=NULL)
	{
		int i,n=strlen(str);
		if (str[0]>='a'&&str[0]<='z') printf("%c",str[0]-32);
		else printf("%c",str[0]);
		for (i=1;i<n;i++)
                {
			if (str[i-1]==' '&&str[i]>='a'&&str[i]<='z') printf("%c",str[i]-32);
			else printf("%c",str[i]);
		}
		printf("\n"); 
	}
	return 0;
}
posted @ 2022-10-29 19:50  shany212  阅读(63)  评论(0编辑  收藏  举报