统计字符串中各字符的个数 C
编程,输入一个字符串,分别输出字符串中所包含的各个不同的字符及其各自字符的数量。如:输入字符串:abcedabcdcd则输出:a=2b=2c=3d=3e=1。...
编程,输入一个字符串,分别输出字符串中所包含的各个不同的字符及其各自字符的数量。如:输入字符串: abcedabcdcd
则输出: a=2 b=2 c=3 d=3 e=1 。 展开
则输出: a=2 b=2 c=3 d=3 e=1 。 展开
2个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
void main()
{
char s[200];
int m[200][2];
int i,j,k,n,l;
printf("please enter a string\n");
scanf("%s",s); // 有空白字符串行用 gets 输入,无空白字符串用scanf
l = strlen(s);
n=1;
m[n][0]=s[0];
m[n][1]=1;
for (i=1;i<=l;i++){
for (j=1;j<=n;j++)
{
if (s[i]== (m[j][0] & 0xff) ) {m[j][1]++; goto Lab;};
};
n++;
m[n][0]=s[i];
m[n][1]=1;
Lab:;
}
// 如果要按ASCII值大小排列则做:
for (i=1;i<n-1;i++)
for (j=i+1;j<n;j++)
if (m[i][0] > m[j][0]){
k = m[i][0]; m[i][0]=m[j][0];m[j][0]=k;
k = m[i][1]; m[i][1]=m[j][1];m[j][1]=k;
}
for (i=1;i<n;i++) printf("%c=%d ",m[i][0],m[i][1]);
exit(0);
}
#include<stdlib.h>
void main()
{
char s[200];
int m[200][2];
int i,j,k,n,l;
printf("please enter a string\n");
scanf("%s",s); // 有空白字符串行用 gets 输入,无空白字符串用scanf
l = strlen(s);
n=1;
m[n][0]=s[0];
m[n][1]=1;
for (i=1;i<=l;i++){
for (j=1;j<=n;j++)
{
if (s[i]== (m[j][0] & 0xff) ) {m[j][1]++; goto Lab;};
};
n++;
m[n][0]=s[i];
m[n][1]=1;
Lab:;
}
// 如果要按ASCII值大小排列则做:
for (i=1;i<n-1;i++)
for (j=i+1;j<n;j++)
if (m[i][0] > m[j][0]){
k = m[i][0]; m[i][0]=m[j][0];m[j][0]=k;
k = m[i][1]; m[i][1]=m[j][1];m[j][1]=k;
}
for (i=1;i<n;i++) printf("%c=%d ",m[i][0],m[i][1]);
exit(0);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询