码迷,mamicode.com
首页 > 其他好文 > 详细

HDU1020字符串操作

时间:2015-07-10 20:26:51      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:

#include <stdio.h>
#include <string.h>
int N;
int size;

void main()
{
    scanf("%d", &N);
    getchar();  //读取残留的回车符
    for(int i = 0; i < N; i++)
    {
        int index = 0; 
        char strIn[10000] = {\0};
        char strOut[10000] = {\0};
        int count[Z] = {\0};

        gets(strIn); //从键盘读取字符串
        size = (int)strlen(strIn); 
        for(int j = 0; j < size; j++)
        {
            if(strIn[j] >= A && strIn[j] <= Z)
            {
                count[strIn[j]]++; //统计字母个数
            }
            else
                return;
        }
        for(int i = A; i < Z; i++) //输出每个字母的个数
        {
            if(count[i] != 0) //如果输入的字符串包含此字符
            {
                if(count[i] == 1)
                {
                    strOut[index++] = i;
                }
                else
                {
                    int len = 0;
                    char str[5] = {/0};
                    //strOut[index++] = count[i] + ‘0‘; //统计相同字符个数
                    len = sprintf(str, "%d", count[i]);
                    strcat(&strOut[index], str);
                    index += len;
                    strOut[index++] = i;
                }
            }
        }
        printf("%s\n", strOut);
    }
}


技术分享

#include <stdio.h>
#include <string.h>
int N;
int size;

void main()
{
    scanf("%d", &N);
    getchar();  //读取残留的回车符
    for(int i = 0; i < N; i++)
    {
        char strIn[10000] = {\0};

        gets(strIn); //从键盘读取字符串
        size = (int)strlen(strIn); 
        for(int j = 0; j < size;)
        {
            int k = 0;
            if(strIn[j] >= A && strIn[j] <= Z)
            {
                char temp = \0;
                temp = strIn[j];
                j++;
                k = 1;
                while(strIn[j] == temp) //判断接下来是否有相同的字母
                {    
                    j++;
                    k++; //统计相同的字母个数
                }
                //输出个数和字母
                if(k > 1)
                    printf("%d", k);
                printf("%c",temp);
            }
        }
        printf("\n");
    }
}
技术分享

 

 
技术分享
技术分享

HDU1020字符串操作

标签:

原文地址:http://www.cnblogs.com/mrethan/p/4636520.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!