#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;
}
华为14试机
最新推荐文章于 2024-03-22 07:49:12 发布