题目1:删除重复字符
例如:zzzgggddes转为zgdes
#include <iostream>
#include <string.h>
using namespace std;
void func(const char *input,char *output)
{
char repeat=NULL;
while(*input!='\0')
{
if(*input!=repeat)
{
*output++=*input;
repeat=*input;
}
input++;
}
*output='\0';
}
int main()
{
char *input="zzzgggddes";
char *output=new char[strlen(input)+1];
func(input,output);
cout<<output<<endl;
return 0;
}
题目2:识别字符串中的整数并转换为数字形式
void take num(const char *strIn,int *n,unsigned int *outArray)
例如:
输入:strIn="ab00cd+123fght456-25 3.005fgh"
输出: n=6
outArray={0,123,456,25,3,5}
#include <iostream>
using namespace std;
void take_num(const char *strIn,int *n,unsigned int *outArray)
{
unsigned int sum=0;
//bool flag=false;
int i=0;
while(*strIn!='\0')
{
if(*strIn>='0'&&*strIn<='9')
{
while(*strIn>='0'&&*strIn<='9')
{
sum=sum*10+*strIn-'0';
strIn++;
}
outArray[i++]=sum;
sum=0;
}
else
strIn++;
}
*n=i;
}
int main()
{
char *strIn="ab00cd+123fght456-25 3.005fghjljk98dd";
unsigned int outArray[100];
int n=0;
take_num(strIn,&n,outArray);
for(int i=0;i<n;i++)
cout<<outArray[i]<<' ';
cout<<'\n'<<n;
return 0;
}