题目描述
将一串字符串中的数字放入到字符串中间,没有数字或全是数字则原样输出
输入
一串字符串
输出
中间化后的字符串
样例输入
adf2adf23424afa
样例输出
adfa223424dfafa
参考代码
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 1000
typedef struct
{
char *base;
char *top;
}
Stack;
void InitStack(Stack *S)
{
S->base=S->top=malloc(sizeof(char)*MAXSIZE);
}
void Push(Stack *S,char c)
{
*S->top++=c;
}
int Empty(Stack *S)
{
if(S->base==S->top)
return 1;
return 0;
}
void play(Stack *S)
{
*(S->top)=0;
puts(S->base);
}
void play1(Stack *S,Stack *T)
{
int i,n=(T->top-T->base)/2;
for (i=0;i<n;i++)
printf("%c",*(T->base+i));
*(S->top)=0;
*(T->top)=0;
printf("%s%sn",S->base,(T->base+i));
}
int main(){
char c;
Stack s,t;
InitStack(&s);
InitStack(&t);
while((c=getchar())!=EOF){
if(c>='0' && c<='9')
Push(&s,c);//åæ°å
else
Push(&t,c);//åå符
}
if(Empty(&s))
play(&t);
else
if(Empty(&t))
play(&s);
else
play1(&s,&t);
return 0;
}
解析
暂无