当前位置: 首页 > news >正文

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.mrgr.cn/news/60376.html

相关文章:

  • Spring 集成 Dubbo 启动容器报【Injection of @DubboReference dependencies is failed】错误
  • IT运维包里都有什么?
  • AI跟踪报道第62期-本周AI新闻: 微软推出Copilot的AI Agent和Computer Control
  • 【Python爬虫实战】使用BeautifulSoup和Scrapy抓取网页数据!
  • Android 原生开发与Harmony原生开发浅析
  • cookie 简介
  • 盛元广通食检中心实验室信息化LIMS系统
  • 大语言模型推理源码解读(基于llama3模型:来源github)
  • 做梦都想拥有的陪伴对象,AI居然免费帮我实现了...文中附送体验地址!
  • autMan奥特曼机器人-内置容器安装依赖报错:externally-managed-environment
  • 深度学习中的损失函数
  • # centos6.5 使用 yum list 报错Error Cannot find a valid baseurl for repo bas 解决方法
  • 3500多万家专利数据存入Mysql数据库
  • 本地服务器上搭建PPTist轻松实现跨地域的在线PPT制作与演示
  • Spring Cloud Alibaba实战入门之Nacos注册中心(四)
  • 我国金融科技人才培养情况
  • 电动机轴承发热的原因以及补充和更换油脂的经验
  • 基于Spring Boot的在线摄影工作室开发指南
  • 《链表篇》---环形链表
  • Python 中的 @ 符号是如何工作的!
  • Android 应用申请 Google MBA权限
  • 智诊小助手-AP/Station模式切换
  • 渗透测试的主要目的是什么?渗透测试入门到精通教程,收藏这一篇就够了
  • 大模型 “蓝图” 进阶学习路线:构建大模型岗位就业之路
  • 企业数字化转型:平台与大数据算法的力量
  • 使用EmbeddedBuilder可视化编程找不到GD32H7XX