/*
* 功能:打印字符串中重复的字符
*
* 输入:字符串
* 算法:1、首先将第一个字符存如定义的结构体数组 a[0].c,同时将a[0].count = 1
* 2、将其他的字符依次与第一个字符进行比较,若相同,则a[0].count++,若不同,则将这个字符存入新的a[1];
* 以此类推
* 3、根据a[].count 的值是否大于等于2,将值输出
*/
#include<stdio.h>
#include <string.h>
#define N 1024
/*
* 定义一个结构体:字符和字符数目
*/
struct CountChar
{
char c;
int count;
};
int main(void)
{
struct CountChar a[256]; /* 定义一个结构体数组,该数组有236个元素,均为struct CountChar 类型数据 */
char b[N];
int i, j, k = 1;;
/* 将结构体数组初始化 */
for(i = 0; i < 256; i++)
{
a[i].c= 0;
a[i].count=0;
}
gets(b); /* 输入字符串 */
a[0].c = b[0];
a[0].count = 1;
/*
* 将字符串进行解析
*/
for(i=1; b[i] != '\0'; i++)
{
for( j = 0;j < k;j++)
{
if(a[j].c == b[i]) /* 判断新的值是否与存在的值相同 */
{
a[j].count ++;
break; /* 此处的break 语句非常重要 */
}
else if(
华为OJ平台试题 ——字符串:打印字符串中重复的字符
最新推荐文章于 2021-12-19 20:44:11 发布