字符串格式校正

给定一行英文句子,对其做格式校正。正确的格式为:

句首单词首字符如果是英文字母,则应大写;
其他英文字母均应为小写;
其他类型的字符维持不变。
每一行均有若干句子构成,每一句话的格式为:

xxx xxx, xxx⋯ xxx.

即每一句话均由若干个单词构成,每个单词之间用不少于1个的空格进行分隔。最后一个单词紧跟一个句末标点符号。句末标点符号共有三种,分别是:.、?、!。在句子中间,可能会有若干个有可能零个,的存在。

标点符号后可能会有若干个空格,也可能没有。

每个单词均由大小写英文字母或者纯阿拉伯数字构成。

保证单词不会跨行。

行首可能会有空格。

每个单词的长度不超过10,每一行句子的字符总数(包括空格、标点、字母)不超过100。不超过100行。

输出一个整数,为输入中单词的数量。

#include <bits/stdc++.h>

#include <cctype> // toupper 和 tolower

#include <string>

using namespace std;

void format(string &s){

    bool capitalnext = true;

    bool inword = false;

    for(char &ch : s){

        if(isalpha(ch)){

            if(!inword && capi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值