华为OJ平台试题 ——字符串:打印字符串中重复的字符

这是一个在华为OJ平台上关于字符串处理的编程试题,目标是找出并打印输入字符串中出现次数大于等于2的重复字符。程序通过定义一个结构体数组存储字符及其出现次数,遍历字符串进行比较并更新计数,最后输出重复字符。
摘要由CSDN通过智能技术生成
/*
 * 功能:打印字符串中重复的字符
 *
 * 输入:字符串
 * 算法: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 =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值