华为14试机

#include <iostream>
#include "string.h"
#include "stdlib.h"
#include "stdio.h"

using namespace std;

void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr){
    int map[26];
    int  i=0;
    for(;i<26;++i)
        map[i]=0;

    int des_pos=0;
    for(i=0;i<lInputLen; ++i)
    {
        int pos=pInputStr[i]-'a';
        if(!map[pos]){
            map[pos]=1;
            pOutputStr[des_pos++]=pInputStr[i];
        }
    }
    pOutputStr[des_pos]=0;

}

/* question 2*/
void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr)
{
    int sPos,dPos=0;
    char pCh=pInputStr[0];
    sPos=1; //locate to secocnd char
    int count=1;

    cout<<"input string:"<<pInputStr<<"\t len:"<<lInputLen<<endl;
    while(sPos<=lInputLen){
       // cout<<"stepping"<<endl;
        if(pInputStr[sPos]!=pCh)
        {
            if(count>1)
            {
                char temp[10];
                sprintf(temp,"%d",count);
//                strcat(pOutputStr,temp);
                int tempLen=strlen(temp);
                for(int j=0;j<tempLen;j++)
                    pOutputStr[dPos++]=temp[j];
             //   cout<<"temp string:"<<pOutputStr<<endl;
            }
            pOutputStr[dPos++]=pCh;
            cout<<"temp string:"<<pOutputStr<<endl;
    
            count=1;
            pCh=pInputStr[sPos];
        }
        else
            count++;
//      next char
        cout<<"sPos:"<<sPos<<"\tcount:"<<count<<endl;
        sPos++;
    }
     pOutputStr[dPos]=0;

}


int main(){
    char pInputStr[100],pOutputStr[100];

//cout<<"hello"<<endl;
    cin>>pInputStr;
    int len=strlen(pInputStr);
  //  stringFilter(pInputStr, len, pOutputStr);
    stringZip(pInputStr, (long)len, pOutputStr);
    cout<<pOutputStr<<endl;
    return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值