昨天有朋友去华赛面试,当场考了一个统计字符串中个字符的个数的编程题。我在网上找了下,写的都很扯淡的,至少用C语言的很扯淡的,很多人都只局限于统计字母的个数了。自己也写了一段代码,估计着如果字符串很长而且串中字符的相同率很低的话,这个程序的效率不是很高。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 256
void main()
{
char str[SIZE];
unsigned int i = 0, j = 0;
int count;
int flag = 0;
printf("str:");
if (!gets(str))
{
exit(1);
}
for (i = 0; i < strlen(str); i++)
{
count = 0;
for (j = 0; j< i; j++)
{
flag = 0;
if(str[j] == str[i])
{
flag = 1;
break;
}
}
if (flag == 1)
continue;
for (j = i; j < strlen(str); j++)
{
if(str[j] == str[i])
{
count++;
}
}
printf("%-3c出现的次数:%3d\n", str[i], count);
}
}
运行结果截图:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 256
void main()
{
char str[SIZE];
unsigned int i = 0, j = 0;
int count;
int flag = 0;
printf("str:");
if (!gets(str))
{
exit(1);
}
for (i = 0; i < strlen(str); i++)
{
count = 0;
for (j = 0; j< i; j++)
{
flag = 0;
if(str[j] == str[i])
{
flag = 1;
break;
}
}
if (flag == 1)
continue;
for (j = i; j < strlen(str); j++)
{
if(str[j] == str[i])
{
count++;
}
}
printf("%-3c出现的次数:%3d\n", str[i], count);
}
}
运行结果截图:
转载于:https://blog.51cto.com/qq164587043/93469