C++一维数组——[C]统计字母出现次数

本文介绍了一段C++代码,用于统计输入字符串中每个小写字母及其出现次数,涉及字符数组、排序和计数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

输入一串小写字母(以"."为结束标志),统计出每个字母在该字符串中出现的次数(若某字母不出现,则不要输出)。

输入

输入只有一行,包括若干个字符。

输出

输出只有两行,第一行为出现的小写字母,第二行为字母的出现次数。

样例

输入 

abdceeef.

输出

abcdef
111131

参考代码:

第一次尝试用两个字符串数组,但是把数组强制转换为字符,出错。

并且第一次题目没有仔细阅读,漏排序了

#include <bits/stdc++.h>
using namespace std;
int N=200;
int main()
{
	string a;
	string s1="",s2="";
	char c[26]={0};
	cin>>a;
	for(char c='a';c<='z';c++)
	{
		int num=0;	
		for(int i=0;i<a.length();i++)
		{
			if(c==a[i])
				num++;
		}
		if(num!=0)
		{
			s1+=c;
			s2+=to_string(num);	
		}
	}
	cout<<s1<<endl<<s2;
	return 0;
}

于是采取第二种方法:

重难点:个数数组的下标,要用一个新的变量x来计算,这个变量数值的变化要注意。

#include <bits/stdc++.h>
#include <algorithm>
using namespace std;
int N=200;
int main()
{
	string a;
	string s1="";
	int n[26]={0},x=0;
	char c[26]={0};
	cin>>a;
	for(int i=0;i<a.length();i++)
	{
		for(int j=1;j<a.length()-1;j++)
			if(a[j]>a[j+1]) swap(a[j],a[j+1]);
	}
	for(char c='a';c<='z';c++)
	{
		int num=0;	
		for(int i=0;i<a.length();i++)
		{
			if(a[i]==c)
				num++;
		}
		if(num!=0)
		{
			s1+=c;
			n[x]=num;
			x++;	
		}
	}
	cout<<s1<<endl;
	for(int i=0;i<x;i++) cout<<n[i];
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值