C++二级 求每个单词的长度的3种解决办法(包括find、substr)

题目:求每个单词的长度

输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。
注意,如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。
没有被空格间隔开的符号串,都算作单词。注意:空格不计入单词长度。
输入
一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔。单词序列总长度不超过1000。 
输出
依次输出对应单词的长度,之间以逗号间隔。
样例输入
She was born in 1990-01-02   and   from Beijing city.
样例输出
3,3,4,2,10,3,4,7,5

1、解决办法1用find和substr

提示:
1.find找第一个空格,找到的索引加1就是第一个单词的长度。
2.substr,从第一个空格到末尾开始剪切下来
3.重复12步骤,直到无空格

#include <iostream>
#include <string>
using namespace std; 
int main() {string text;getline(cin,text);int start = 0;int end;// 在 find() 函数的返回值中,如果没有找到匹配的子字符串或字符,就会返回 std::string::npos。while ((end = text.find(' ', start)) != string::npos) {string word = text.substr(start, end - start);cout << "单词: " << word << ",长度: " << word.length() << endl;start = end + 1;}// 处理最后一个单词if (start < text.length()) {string word = text.substr(start);cout << "单词: " << word << ",长度: " << word.length() << endl;}return 0;
}

//输出结果 
单词: She,长度: 3
单词: was,长度: 3
单词: born,长度: 4
单词: in,长度: 2
单词: 1990-01-02,长度: 10
单词: ,长度: 0
单词: ,长度: 0
单词: and,长度: 3
单词: ,长度: 0
单词: ,长度: 0
单词: from,长度: 4
单词: Beijing,长度: 7
单词: city.,长度: 5

2、解决办法2

#include<bits/stdc++.h>
#include<string.h>
using namespace std;
string s;
int main()
{getline(cin,s);int sum=0,f=1,i;   // sum:计算每个字符串长度 for(i=0;i<s.size();i++){if(s[i]!=' ') sum++;      //计数每个字符串 else if(s[i]==' '&&sum!=0)    // 123空格 f==1的形式就输出结果sum   {if(f==1) {cout<<sum;f=0;}else if(f==0) cout<<","<<sum;    // f==0重置 ,输出"," ,准备下一个字符串的计算 sum=0;   // 重置 }}cout<<","<<sum;  // 因为最后一个字符串后面没有空格了,只能另写一行输出最后一个sum return 0;
} 

输出结果:3,3,4,2,10,3,4,7,5 

3、解决办法3(利用cin特点)

分析:cin只能读入不带空格的字符串的特点(利用cin特点),用cin读入每个单词,
每读入一个字符串,就输出该单词的长度,清空数组,再读入一个字符串,输出该单词的长度,清空数组...循环。

#include<bits/stdc++.h>
using namespace std;
char s[10005];
int main()
{int f = 0;memset(s, 0, sizeof(s));while(cin >> s){f == 0 ? cout << strlen(s) : cout << "," << strlen(s); // 除第一个输入字符串,之后都输入",字符串" memset(s, 0, sizeof(s));f++;}cout << endl;return 0;
}

输出结果:3,3,4,2,10,3,4,7,5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/58122.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3GPP协议解读_NTN系列(一)_38.811_非地面网络(NTN)的背景、应用场景和信道建模

非地面网络 1. Scope4. 非地面网络背景介绍4.1 5G中的非地面网络4.2 非地面网络在5G中的用例4.3 卫星和空中接入网的架构4.4 卫星和空中接入网终端的特点4.5 空气/星载飞行器特性4.6 NTN的覆盖模式4.7 NTN网络架构选项4.8 频谱 5. 非地面网络应用场景5.1 应用场景概览5.2 属性介…

CHAPTER 14 Nonlinearity and Mismatc

CHAPTER 14 Nonlinearity and Mismatch 第6,7章我们介绍了两种非理想: 频率响应和噪声. 这一章我们介绍另外两种非理想现象: 非线性和失配. 我们首先定量化nonlinearity, 学习差分电路和反馈系统的非线性, 以及线性化技术. 然后学习差分电路中的失配和dc offset. 最后学习一些…

51单片机之蜂鸣器驱动

1.简介 蜂鸣器是一种一体化结构的电子讯响器&#xff0c;采用直流电压供电&#xff0c;广泛应用于计算机、打印机、 复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。   压电式蜂鸣器主要…

【C++】vector<string>-动态数组存储多个string

#1024程序员节 | 征文# //demo #include <iostream> #include <vector> #include <string>using namespace std; int main() {// 创建一个存储字符串的向量vector<string> Record;// 向向量中添加字符串Record.push_back("example");Record…

css-画一个三角形

<span class"triangle"></span>.triangle {display: inline-block; /* 使 span 能够接受宽高 */width: 0; /* 宽度为 0 */height: 0; /* 高度为 0 */border-left: 50px solid transparent; /* 左边边框 */border-right: 50px solid transparent; /* 右边…

**深入浅出:TOGAF中的应用架构**

摘要&#xff1a; 在企业架构&#xff08;EA&#xff09;领域&#xff0c;TOGAF&#xff08;The Open Group Architecture Framework&#xff09;是一个广泛应用的框架。本文将带你深入了解TOGAF中的应用架构&#xff0c;帮助你理解其核心概念和实际应用。无论你是初学者还是有…

Node-RED的面板的认识及操作

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 &#x1f4d8; 文章引言 &#x1f4df; 面板…

深入探索:深度学习在时间序列预测中的强大应用与实现

引言&#xff1a; 时间序列分析是数据科学和机器学习中一个重要的研究领域&#xff0c;广泛应用于金融市场、天气预报、能源管理、交通预测、健康监控等多个领域。时间序列数据具有顺序相关性&#xff0c;通常展示出时间上较强的依赖性&#xff0c;因此简单的传统回归模型往往…

tornado,flaskd这两个框架主要是干什么的

Tornado是一个Python的Web框架&#xff0c;主要用于构建高性能的异步Web应用程序。它基于非阻塞的网络I/O模型&#xff0c;可以处理大量并发连接&#xff0c;适用于需要处理实时性要求较高的应用场景&#xff0c;如实时聊天、实时数据推送等。 Flask是另一个Python的Web框架&a…

论文略读:Less is More: on the Over-Globalizing Problem in Graph Transformers

2024 ICML 主要观点&#xff1a;Graph Transformer 中的过全局化问题 (Over-Globalizing Problem) 当前 Graph Transformer 的注意力机制过度关注那些远端节点&#xff0c;而实际上包含了大部分有用信息的近端节点则被相对忽视了——>提出了一种新的采用协同训练的两级全局…

【人工智能原理】合肥工业大学 宣城校区 实验三 神经网络之网络基础

第1关&#xff1a;神经网络概述 下列说法错误的是 D A、 激活函数可以使神经元搭建输入到输出之间的映射关系。 B、 反馈网络模型在不同 的时刻有属于当前不同的状态&#xff0c;具有一定的记忆功能。 C、 所有神经网络一定都包含输入层、隐藏层、输出层三部分。 D、 …

Springboot项目中使用WebSocket与前端通信时,AOP的before注解未起作用

原因&#xff1a; 在 Spring AOP 的 Before 切面阶段&#xff0c;WebSocket 连接可能还没有完全建立&#xff0c;尤其是在请求处理流程的早期阶段。因此&#xff0c;前端无法立即接收到消息。而 AfterReturning 会在控制器方法执行完毕后触发&#xff0c;此时 WebSocket 连接一…

【Ubuntu】服务器系统重装SSHxrdpcuda

本文作者&#xff1a; slience_me Ubuntu系统重装操作合集 文章目录 Ubuntu系统重装操作合集1.1 系统安装&#xff1a;1.2 安装openssh-server更新系统包安装OpenSSH服务器检查SSH服务的状态配置防火墙以允许SSH测试SSH连接配置SSH&#xff08;可选&#xff09; 1.3 安装远程连…

力扣之612.平面上的最近距离

文章目录 1. 612.平面上的最近距离1.1 题目说明1.2 准备数据1.3 解法1.4 结果截图 1. 612.平面上的最近距离 1.1 题目说明 Point2D 表&#xff1a; ----------------- | Column Name | Type | ----------------- | x | int | | y | int | ----------------- (x, y) 是该表的…

Python小白学习教程从入门到入坑------第十七课 内置函数拆包(语法基础)

一、内置函数 1.1 查看所有内置函数 内置函数&#xff1a;Python 提供了许多内置函数&#xff0c;这些函数无需导入任何模块即可直接使用。它们涵盖了各种用途&#xff0c;从数学运算到类型检查&#xff0c;再到输入输出操作等。 如何查看内置函数呢&#xff1f; 在Pycharm…

详解TCP三次握手和四次断开

本来想自己写&#xff0c;发现一篇非常详细的文章&#xff0c;直接转载&#xff0c;上链接~~ 详解TCP三次握手和四次断开

微信小程序——消息订阅

首先用到的就是wx.requestSubscribeMessage接口。 注意&#xff1a;用户发生点击行为或者发起支付回调后&#xff0c;才可以调起订阅消息界面 requestSubscribeMessage() {uni.requestSubscribeMessage({tmplIds: [],//需要订阅的消息模板的id的集合&#xff0c;一次调用最多可…

git 如何查看两次commit之间有多少次提交

可以使用 git rev-list 命令来查看两次提交之间的提交次数。具体来说&#xff0c;使用以下命令来统计两次提交之间的提交数&#xff1a; git rev-list --count <commit1>..<commit2>其中&#xff1a; <commit1> 是起始的提交&#xff08;较旧的提交&#x…

阿里云用STS上传oss的完整程序执行流程图 和前端需要哪些参数uniapp

H5 微信小程序可用的前端直传阿里云OSS(STS临时凭证前端签名)直接下载插件 阿里云sts使用官方文档 下面是原理说明&#xff1a; 前端上传文件到阿里云OSS需要携带的具体参数&#xff1a; 从服务器获取的 STS 凭证&#xff1a; // 这些参数需要从你的后端服务器获取 {acc…

66Analytics 汉化版,网站统计分析源码,汉化前台后台

66Analytics 汉化版,网站统计分析源码,汉化前台后台 本源码汉化前台后台&#xff0c;非其他只汉化前台版 网络分析变得容易。自托管、友好、一体化的网络分析工具。轻量级跟踪、会话回放、热图、用户旅程等 简单、好看、友好-大多数网络分析解决方案做得太多了&#xff0c;在大…