可以先排序,在遍历统计。
#include <stdio.h>#include <string.h>
// 升序字符串src,然后返回
char* sort(char *src)
{
char tem, len = strlen(src)
for (int i = 0 src[i] i++)
{
for (int j = 0 j < len - i - 1 j++)
if (src[j] > src[j+1])
{
tem = src[j]
src[j] = src[j+1]
src[j+1] = tem
兄带 }
}
return src
}
int main()
{
char str[1000], ch
int i = 0, cnt
printf("input a string :")
孝乱 gets(str)
sort(str) // 排序
ch = str[0]
cnt = 1
for (i = 1 str[i] i++) // 遍历统计
{
if (str[i] != ch)
巧尘档 {
if (cnt)
printf("%c has %d.\n", ch, cnt)
ch = str[i]
cnt = 1
}
else
cnt++
}
if (cnt)
printf("%c has %d.\n", ch, cnt)
return 0
}
//输扰灶入一行字符,分别统计出其中字母、空格、数字和其拿凳他字符的个数。#include<stdio.h>
int main(void)
{
char ch
int a=0,b=0,c=0,d=0
while((ch=getchar())!='\n'消李旅)
{
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
a++
else if(ch>='0'&&ch<='9')
b++
else if(ch==' ')
c++
else
d++
}
printf("字母=%d\n数字=%d\n空格=%d\n其他字符=%d\n",a,b,c,d)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)