HDU2026 首字母变大写文本处理
Posted 海岛Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU2026 首字母变大写文本处理相关的知识,希望对你有一定的参考价值。
首字母变大写
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 111696 Accepted Submission(s): 60748
Problem Description
输入一个英文句子,将每个单词的第一个字母改成大写字母。
Input
输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。
Output
请输出按照要求改写后的英文句子。
Sample Input
i like acm
i want to get an accepted
Sample Output
I Like Acm
I Want To Get An Accepted
Author
lcy
Source
C语言程序设计练习(四)
问题链接:HDU2026 首字母变大写
问题简述:(略)
问题分析:
按Markdown格式重写了题解,旧版题解参见参考链接。
这个是文本处理问题,可以作为文本处理的基础训练。
C语言程序应该尽量使用库函数,这些函数在C++语言程序中也可以使用。C语言程序中,函数gets()是不被推荐使用的,这里用函数fgets()来实现。其中,程序的一些细节需要考虑,参见程序代码。相对而言,用函数gets()比起函数fgets()来,程序代码要简单一些。
给出C和C++两种语言的题解程序。
程序说明:(略)
参考链接:HDU2026 首字母变大写【入门】
题记:(略)
AC的C语言程序如下:
/* HDU2026 首字母变大写 */
#include <stdio.h>
#include <ctype.h>
#define N 100 + 1
char s[N];
int main(void)
{
int i;
while (fgets(s, N, stdin) != NULL) {
for (i = 0; s[i] != '\\n'; i++)
if (i == 0) {
if (islower(s[i])) s[i] = toupper(s[i]);
} else {
if ((s[i - 1] == ' ' || s[i - 1] == '\\t') && islower(s[i]))
s[i] = toupper(s[i]);
}
s[i] = '\\0';
puts(s);
}
return 0;
}
AC的C++语言程序如下:
/* HDU2026 首字母变大写 */
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main()
{
string s;
while(getline(cin, s)) {
if(islower(s[0])) s[0] = toupper(s[0]);
for (int i = 1, len = s.length(); i < len; i++) {
if((s[i - 1] == ' ' || s[i - 1] == '\\t') && islower(s[i]))
s[i] = toupper(s[i]);
}
cout << s << endl;
}
return 0;
}
以上是关于HDU2026 首字母变大写文本处理的主要内容,如果未能解决你的问题,请参考以下文章