You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用C语言统计文本文件中唯一城市的数量?

嘿,我懂你的困扰啦——之前单纯数城市出现的次数(行数)没考虑重复,才会得到5这个错误结果对吧?咱们换个思路,核心就是先提取所有城市名,再去重统计,具体步骤如下:

正确解决步骤

1. 准确提取所有城市名

你的文本是「城市 + 价格」交替出现的模式,比如:

New York $255 New Jersey $19.90 Farmvill $300 Texas $400 New York $17.90

这里的关键是利用价格以$开头的特征来区分城市和价格:

  • 先把整个文本按$分割,得到的每一段(除了最后一段),前面的部分就是带多余空格和数字的城市相关内容,比如分割后第二段是255 New Jersey ,我们只需要去掉开头的数字和空格,就能得到New Jersey
  • 或者遍历文本内容,把连续的非$开头的单词组合成城市名,直到遇到$开头的价格,就把组合好的城市名存起来(要注意处理像「New York」这种多单词的城市名,别直接按空格拆分)。

2. 用集合去重,统计数量

把所有提取到的城市名放进**集合(Set)**里——集合的特性就是自动剔除重复元素,重复的城市只会保留一个。之后直接获取集合的长度,就是唯一城市的数量了。

举个简单的伪代码示例:

# 假设已经提取好所有城市名到列表里
cities_list = ["New York", "New Jersey", "Farmvill", "Texas", "New York"]
unique_cities = set(cities_list)
unique_count = len(unique_cities)
print(unique_count)  # 输出4,这就是正确的唯一城市数量

小提醒

如果遇到更复杂的文本,只要抓住「价格带$」这个区分点,就能准确提取城市名,别再单纯按行数或者空格数统计啦,那样很容易忽略重复的情况。

内容的提问来源于stack exchange,提问作者GhostNANI

火山引擎 最新活动