蓝桥杯算法提高VIP-不同单词个数统计(C语言)

C语言不同单词个数统计 编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句子“one little two little three little boys”,总共有5个不同的单词:one, little, two, three, boys。 阅读详情

题目描述

编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句子“one  little  two  little  three  little  boys”,总共有5个不同的单词:one,  little,  two,  three,  boys。
说明:(1)由于句子当中包含有空格,所以应该用gets函数来输入这个句子;(2)输入的句子当中只包含英文字符和空格,单词之间用一个空格隔开;(3)不用考虑单词的大小写,假设输入的都是小写字符;(4)句子长度不超过100个字符。

输入格式

输入只有一行,即一个英文句子。

输出格式

输出只有一行,是一个整数,表示句子中不同单词的个数。 

样例输入

one little two little three little boys

样例输出

5

思路

先读入句子,从头开始循环,将读到的单词记录下来,将当前单词与列表内进行比较,如果出现过就清除单词,记录下一个;如果没出现就将当前单词加入单词列表中,再记录新单词,最终输出列表单词数

注意循环要以'\0'为结束,否则无法记录最后一个单词

用gets函数输入句子,但是要把回车清除

记录单词时要排除空白字符

#include<stdio.h>
#include<string.h>

int compare(char* a, char str[][200], int m) {//检查是否有重复
	int flag = 0;
	int i;
	for (i = 0;i < m;i++) {
		if (!strcmp(a, str[i])) {
			flag = 1;
			break;
		}
	}
	return flag;
}
int main() {
	char c[200];
	char str[200][200];//单词列表
	fgets(c, sizeof(c), stdin);
	int n = strlen(c);//输入句子长度
	n--;//除去回车
	c[n] = '\0';
	int m = 0;//不同单词的数量
	int k = 0;//当前单词的大小
	char thisOne[200];//当前单词
	for (int i = 0;i <= n;i++) {
		if (c[i] == ' '||c[i]=='\0') {//空格或结束
			if (k > 0) {//非空白
				thisOne[k] = '\0';
				if (!compare(thisOne, str, m)) {//没有重复
					strcpy(str[m], thisOne);//加入列表
					m++;
				}
			k = 0;//从头记录
			}
		}
		else {
			thisOne[k] = c[i];
			k++;
		}
	}
	printf("%d\n", m);
	return 0;
}

虚拟化 之三 详解 ARM 平台 jailhouse 的移植适配、构建及使用(飞腾派) 本文将探索学习通过在飞腾官方提供的 Buildroot 构建系统移植适配 openEuler 内核以及 jailhouse 源码 Package 进而直接构建一个适用于飞腾派开发板的带有 jailhouse 的 openEuler 发行版。 阅读详情

相关推荐

从USB 2.0到USB 3.x:Synopsys SVT USB VIP配置避坑与接口选择指南

本文详细解析了从USB 2.0到USB 3.x的Synopsys SVT USB VIP配置要点,涵盖协议版本选择、物理接口匹配及UVM层次化架构实现。重点介绍了layering sequence的配置技巧和常见问题解决方案,帮助验证工程师高效避坑并优化验证流程。

weixin_42653691的博客 238

题目 1487: 蓝桥杯算法提高VIP-不同单词个数统计

题目链接 题目大意 输入一个句子,计算有多少个不同的单词 解题思路 1.因为是单词 所以无法利用 map 统计单个字符的数量的方法来统计不同的单词数量 2.如果 用 set 函数 遍历句子长度,将字符插入 set 中也是无法实现计算数量 3.那么需要利用思考set 的用法 ,再 进行计数 坑点 1.无 算法一: 字符串+set 实现步骤 1. 定义一个set 函数 2. 利用 while(cin>> 字符串) 3.将字符串 插入 set 中 ,...

m0_63353853的博客 593

立创开源:基于STM32F103与ADS1256的六维力传感器低成本实现方案

本文详细介绍了一种基于STM32F103微控制器与ADS1256高精度ADC的低成本六维力传感器实现方案。该方案通过3D打印的六梁弹性体结构结合应变片,将多维力信号转换为电信号,并由24位ADC进行高精度采集。文章涵盖了硬件选型、电路设计、嵌入式软件驱动及上位机数据可视化全流程,为机器人、精密测量等领域的爱好者提供了一个可复现的开源实践参考。

weixin_34718952的博客 388

2015蓝桥杯校选-统计单词个数

题目:输入一个字符串,求它包含多少个单词。单词间以一个或者多个空格分开。 第一个单词前,最后一个单词后也可能有0到多个空格。 比如:" abc    xyz" 包含两个单词,"ab   c   xyz    "  包含3个单词。 如下的程序解决了这个问题,请填写划线部分缺失的代码。 注意:只填写划线部分的代码,不要填写任何多余的内容。比如已经存在的小括号,注释或说明文字等。 答案:*p!=...

程序媛 579

从选型到调试:MCU外部晶振电路设计的实战避坑指南

本文详细解析了MCU外部晶振电路设计的关键要点,从选型到调试提供全面指南。重点探讨了晶振频率选择、负载电容计算、PCB布局优化等核心问题,并分享常见故障排查技巧与EMC设计经验,帮助工程师规避设计陷阱,提升嵌入式系统时钟稳定性。

weixin_30872577的博客 276

智能优化电池:基于单片机的电池管理系统

设计简介: 本设计是基于单片机的电池管理系统,主要实现以下功能: 可通过LCD1602显示温度、电压电流值; 可通过按键调整温度、电压和电流的阈值; 用ADC0832将模拟量转换为数字量。 标签:51单片机、LCD1602、ADC0832 效果图: 总体资料: 原理图: 软件设计流程: 系统框图: 本设计以STC89C52单片机为核心控制器,加上其他的模块一起组成电动汽车的电池管理的整个系统,...

专注单片机实战教学,分享单片机学习资料 375

蓝桥杯算法提高VIP-不同单词个数统计

[题目链接](蓝桥杯算法提高VIP-不同单词个数统计 - C语言网) ### 题意 > 从1999年10月1日开始,公民身份证号码由15位数字增至18位。(18位身份证号码简介)。升级方法为: 1、把15位身份证号码中的年份由2位(7,8位)改为四位。 2、最后添加一位验证码。验证码的计算方案: 将前 17 位分别乘以对应系数 (7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2) 并相加,然后除以 11 取余数,0-10 分别对应 1 0 x 9 8 7 6 5 4 3 2

qq_63691719的博客 230

智能工厂四大系统协同实战:ERP/PLM/MES/WMS集成架构与数据流解析

本文深入解析了智能工厂中ERP、PLM、MES、WMS四大核心系统的协同集成架构与数据流。通过实战案例,阐述了如何打通系统孤岛,实现从产品设计、资源计划、生产执行到仓储物流的数据无缝流转,从而构建高效、敏捷的智能工厂运营体系。

ujm567890的博客 674

蓝桥杯算法提高VIP-单词个数统计

蓝桥杯算法提高VIP-单词个数统计

m0_64370558的博客 195

FreeRTOS全攻略:从入门到精通

本文聚焦 FreeRTOS,从基础概念出发,阐述其开源、轻量级等优势。着重介绍 FreeRTOS 入门知识,涵盖内存管理、任务操作、同步互斥机制等核心内容。其中,空闲任务与钩子函数保障系统基础运行与功能扩展;队列、信号量、互斥锁和事件组等机制,分别从数据传递、资源访问控制、优先级问题解决及多任务同步等方面,为开发者提供高效的任务间协作与资源管理方案,助力开发者掌握 FreeRTOS 核心技术,为嵌入式项目开发筑牢基础。

邓邓子的博客 6354

实现基于 Python 和 xterm.js 的 Web 交互终端demo

前端 (HTML):使用 xterm.js 作为前端终端模拟器库。创建了一个 WebSocket 连接到 ws://localhost:8765,这与后端服务器的地址和端口匹配。监听 WebSocket 消息,并将数据写入终端。同时监听用户输入并发送到服务器。后端 (Python):使用 websockets 库来创建 WebSocket 服务器,监听端口 8765。使用 paramiko 库来创建 SSH 客户端并连接到指定的远程服务器。

u010674101的专栏 874

单词分割算法代码c语言,[蓝桥杯][算法提高VIP]统计单词数 (C语言代码)

解题思路:第一步,拆分字符串,并统计单词个数;第二步,求单词最大长度;第三步,按要求输出。注意事项:注意,统计单词个数时,全部转换为大写,再统计,否则会出错,本题中大小写算是一个单词。参考代码:#include#include#includeintfun(char*a,chars[][20],intcount[]){inti,j,k,n;chartemp[20];while(*a=...

weixin_29322049的博客 538

基于DSIFT多尺度图像融合的MATLAB代码

多尺度图像融合是一种常用的图像处理技术,它可以将具有不同尺度和空间频率特征的图像融合成一幅更具信息丰富度和视觉效果的图像。DSIFT算法是一种基于SIFT算法的改进版本,它在提取图像特征时采用了密集采样的方法,能够有效地提取图像的局部特征。多尺度图像融合基于DSIFT算法的思想,通过在不同尺度下提取图像的DSIFT特征,并将这些特征进行融合,得到最终的融合图像。然后,通过DSIFT算法提取了两幅图像的特征。通过运行上述代码,我们可以在MATLAB中实现基于DSIFT多尺度图像融合的算法,并观察到融合结果。

IELLQUI9的博客 180

蓝桥杯VIP 试题 算法提高 单词个数统计 Java

试题 算法提高 单词个数统计 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述   编写一个程序,输入一个字符串(长度不超过80),然后统计出该字符串当中包含有多少个单词。例如:字符串“this is a book”当中包含有4个单词。   输入格式:输入一个字符串,由若干个单词组成,单词之间用一个空格隔开。   输出格式:输出一个整数,即单词的个数。   输入输出样例   用户输入数据样例:   this is a book   系统输出数据如下:   4 可以把输入的字..

qq_46235384的博客 164

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

[蓝桥杯][算法提高VIP]不同单词个数统计

思路:用STL set 很容易就解决了,算是复习了一下 #include<bits/stdc++.h> using namespace std; int main(){ set<string> st; string s; while(cin>>s){ st.insert(s); } cout<<st.size(); } ...

PengWei Yang 349

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

题目 1553: [蓝桥杯][算法提高VIP]笨小猴

题目描述: 算法思路:本题我利用的是数组的知识来解决,我先把输入的字符串存储在字符a数组中,创建一个字符b数组,存储不相同的字符,再创建一个num数组来存储每个字符出现的次数(这里num数组中元素我初始化为1,因为本程序是重复一次,num就再加1,刚好对应该字符出现两次)。最后再对num数组中的元素进行排序,得到最大值和最小值只差,再判断是否是质数,本题就得以解决。 第一步:现将a数组的第一个元素e放到b数组中的b[0]位置 b[0] = a[0]; 第二步:对a数组从1开始取字符与b数组中的元素进行

weixin_46077587的博客 228

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

[蓝桥杯][算法提高VIP]统计单词数

题目 题目链接 题解 考查STL吧。 string用法,string数组用法 map用法 substr()用法 isalpha()用法(还有个差不多的,isdigit()) toupper()用法(同样的还有,tolower()) size()用法(等同于length()) 代码 #include<bits/stdc++.h> using namespace std; int maxlen, cc; string s, strs[110]; map<string, int>

LJR的博客 184

蓝桥杯-问题 1505:单词个数统计(c++ string,vector解决)

/*问题 1505: [蓝桥杯][算法提高VIP]单词个数统计时间限制: 1Sec 内存限制: 128MB 提交: 82 解决: 35题目描述编写一个程序,输入一个字符串(长度不超过80),然后统计出该字符串当中包含有多少个单词。例如:字符串“this  is  a  book”当中包含有4个单词。输入输入一个字符串,由若干个单词组成,单词之间用一个空格隔开。输出输出一个整数,即单词的个数。 样例...

关注网络安全、云原生安全 1196

QUSTOJ1226:统计单词个数

Description 我们的第一个任务,就是统计给定数据单词的个数。 Input 第一行输入一个整型数T,表示有T行测试数据。从第二行开始到第T+1行会有T组测试数据,每行一串字符,可能为大写字母,小写字母,数字(例如年份)或者空格,每两个单词之间用一个空格分隔,但是不保证每个单词以大写字母开头,也不保证大写字母只出现在开头。每一行可能有一个英文句号作为结尾,也可能没有。最后一

这里是两只喜欢代码的电路狗。 796

统计单词数

统计单词数 https://www.luogu.org/problemnew/show/P1308 大佬的题解粘来学习 AC代码: 1 #include <cstring> 2 #include <cctype> 3 #include <cstdio> 4 5 void strlower (char *a) {...

dingyangdi3490的博客 182

第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-678 单词接龙

第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-678 单词接龙 前言 关于数学的疑问 算法训练 单词接龙 C语言 C++语言 Java语言 Python语言 总结 第六届——第十三届省赛题解 第六届——第十二届国赛题解

红目香薰 232

算法提高 统计单词数

问题描述  统计输入英文文章段落中不同单词(单词有大小写之分,  但统计时忽略大小写)各自出现的次数。 输入段落中所含单词的总数不超过100,最长单词的长度不超过20个字母.输入格式  一个包含若干句子的段落, 每个句子由若干英文单词组成. 除空格,  逗号和句号外, 这些输入的句子中不含其他非字母字符, 并且, 逗号和句号紧跟在它前面的英文单词后面, 中间没有空格. 段落最后一个字符是回车符...

qq_36636134的博客 244

蓝桥杯 算法提高 最长单词

import java.util.Scanner;/** * <pre> * 算法提高 最长单词 时间限制:1.0s 内存限制:512.0MB   编写一个函数,输入一行字符,将此字符串中最长的单词输出。   输入仅一行,多个单词,每个单词间用一个空格隔开。单词仅由小写字母组成。所有单词的长度和不超过100000。如有多个最长单词,输出 最先出现的。 样例输入 I am a st

gonefuture的学习博客 563

蓝桥杯简单题分享

这里重要的是结束时间的判断,对m表示意义的判断(如果错认为m表示的是行数,那就错了,因为当判断到最后的时候m还没有来得急自增就已经结束了) 我们在对字符串进行分割的时候,我们使用了一个循环就解决了,这是一种比较节省时间的方法

分享学习过程中的知识和感悟 163

第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-588 单词接龙

第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-588 单词接龙 前言 关于数学的疑问 算法训练 单词接龙 C语言 C++语言 Java语言 Python语言 总结 第六届——第十三届省赛题解 第六届——第十二届国赛题解

红目香薰 192

蓝桥杯提上日程_每日十题打卡_1.25

蓝桥杯提上日程_每日十题打卡_1.25

敖丙007的博客 2890
上一篇: 蓝桥杯算法提高VIP-寻找三位数(C语言)
下一篇: 蓝桥杯2013年第四届真题-错误票据(C语言)
Ehell
博客等级 码龄4年 23粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值