首页 > 其他分享 >DreamJudge-1240-首字母大写

DreamJudge-1240-首字母大写

时间:2024-06-11 11:12:43浏览次数:26  
标签:单词 inWord 1240 DreamJudge 首字母 大写字母 字符串 空白符

1.题目介绍

Time Limit: 1000 ms
Memory Limit: 256 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.

题目来源

北京大学机考题

2.题解

2.1 字符串函数

思路

使用isspace判断空白符,使用标记判断当前是否是一个新单词(每经过一个空白符,默认后面的为一个新开始的单词)
然后使用toupper大写化首字母即可!

代码

#include <iostream>
#include <string>
#include <cctype>

using namespace std;

void capitalizeWords(string& s) {
    int n = s.length();
    bool inWord = false; // 标记是否在单词中
    
    for (int i = 0; i < n; ++i) {
        // 如果当前字符是空白符,说明单词结束
        if (isspace(s[i])) {
            inWord = false;
        } else {
            // 如果当前字符不是空白符,且不在单词中,说明新单词开始
            if (!inWord) {
                inWord = true;
                // 如果单词的首字母不是大写字母,则将其转换为大写字母
                if (islower(s[i])) {
                    s[i] = toupper(s[i]);
                }
            }
        }
    }
}

int main() {
    string input;
    getline(cin, input);
    
    capitalizeWords(input);
    cout << input << endl;
    
    return 0;
}

标签:单词,inWord,1240,DreamJudge,首字母,大写字母,字符串,空白符
From: https://www.cnblogs.com/trmbh12/p/18241709

相关文章

  • DreamJudge-1012-字符移动
    1.题目描述TimeLimit:1000msMemoryLimit:256mb输入一个字符串,将其中的数字字符移动到非数字字符之后,并保持数字字符和非数字字符输入时的顺序。例如:输入字符串“ab4f35gr#a6”,输出为“abfgr#a4356”。输入输出格式输入描述:输入一行字符串,长度小于100。输出描述:......
  • DreamJudge-1410-打印日期
    1.题目描述TimeLimit:1000msMemoryLimit:256mb给出年分m和一年中的第n天,算出第n天是几月几号。输入输出格式输入描述:输入包括两个整数y(1<=y<=3000),n(1<=n<=366)。输出描述:可能有多组测试数据,对于每组数据,按yyyy-mm-dd的格式将输入中对应的日期打印出来。输......
  • DreamJudge-1290-日期差值
    1.题目介绍题目描述TimeLimit:1000msMemoryLimit:256mb有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天输入输出格式输入描述:有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD输出描述:每组数据输出一行,即日期差值输......
  • DreamJudge-1011-日期
    1.题目描述TimeLimit:1000msMemoryLimit:256mb今天是2012年4月12日星期四,编写程序,输入今天开始到12月31日之间的任意日期,输出那一天是星期几。例如输入“5(回车)20(回车)”(5月20日),输出应为“Sunday”。输入输出格式输入描述:输入第一行为月份。输入第二行为这个月的第......
  • java如何取得拼音的首字母
    packagecom.junfun.pms;importnet.sourceforge.pinyin4j.PinyinHelper;publicclassPinyinUtils{publicstaticStringgetFirstLetter(Stringinput){StringBuilderresult=newStringBuilder();for(charc:input.toCharArray()){......
  • Leetcode-2828. 判别首字母缩略词
    2828.判别首字母缩略词给你一个字符串数组words和一个字符串s,请你判断s是不是words的首字母缩略词。如果可以按顺序串联words中每个字符串的第一个字符形成字符串s,则认为s是words的首字母缩略词。例如,"ab"可以由["apple","banana"]形成,但是无法从["bear"......
  • Golang 序列化与反序列化,包含字段首字母小写和字段时间格式化
     golang结构体json的时间 序列化与反序列化 格式化解决方案 //最近开发项目时候发现一个结构体的Json转换的时间格式问题。//即这种1993-01-01T20:08:23.000000028+08:00这种表示UTC方法。//从我们习惯来说,更喜欢希望的是1993-01-0120:08:23这种格式如......
  • axis2生成wsdl回执参数首字母大小写问题
    在跟局方对接接口的时候,局方回执我的wsdl接口,发现收不到同步回执,怀疑问题为回执参数首字母小写导致  代码中的参数对象首字母确实是大写,但生成的wsdl文件确变成了小写,目前是用axis2生成的参考:https://bbs.csdn.net/topics/390457284发现了变为小写的原因,选择使用xFire......
  • 背单词 首字母 2024年05月
    2024-05-312024-05-302024-05-292024-05-282024-05-272024-05-262024-05-252024-05-242024-05-232024-05-222024-05-212024-05-202024-05-192024-05-182024-05-172024-05-162024-05-152024-05-142024-05-132024-05-122024-05-112024-05-102024-05-092024-05-082024-05-072024-......
  • 中考英语首字母快速突破016-2021上海长宁英语二模-Coping Tips for Impatience-应对不
    PDF格式公众号回复关键字:ZKSZM016原文​Impatientpeopleareoftenseenasproudandself-important.Beingimpatientcanaffectyourrelationshipsatworkandathomenegatively(有害地).Peoplewillsenseangerfromyouandnotlike(71)dwithyouif......