编写一个程序实现如下功能:输入一个字符串,内有数字和非数字字符,如:a123x456 17960?302tab5876 将其
答案:2 悬赏:40 手机版
解决时间 2021-03-11 07:20
- 提问者网友:辞取
- 2021-03-10 07:23
编写一个程序实现如下功能:输入一个字符串,内有数字和非数字字符,如:a123x456 17960?302tab5876 将其
最佳答案
- 五星知识达人网友:上分大魔王
- 2021-03-10 08:48
说都没说完
全部回答
- 1楼网友:梦中风几里
- 2021-03-10 09:37
这要综合用到字符串读入和栈操作,简单起见可以给你一个伪代码:
//先建栈并定义其基本函数
typedef int datatype;
datatype x;
typedef struct{
datatype data[maxsize];
int top;
}zhan;
zhan *s;
void setnull(zhan *s)
{
s->top=-1;
}
int empty(zhan *s)
{
if(s->top<=-1)
return(1);
else return(0);
}
zhan *insert(zhan *s,datatype x)
{
if(s->top==maxsize-1)
{
printf("溢出");
return null;
}
else
{s->top++;
s->data[s->top]=x;
}
return s;
}
datatype pop(zhan *s)
{
if(!empty(s)
return s->data[s->top--];
}
//读入字符串,通过连续字符入栈出栈提取并还原它们。
m=0//m是数组下标变量
for(i=0;;i++)
{
ch=getchar();//读入字符
if(ch=='\n')//换行终止
break;
if('0'<=ch<='9')//数字开始,入栈
insert(s,ch);
else if(!empty(s)){//有非数字字符插入,一个完整数字结束,出栈还原
k=j=0
while(!empty(s)){
k=k+int(pop(s))*10^j
j=j+1
}
a[m]=k
m++
}
}
最后,组织一下,main函数加上去,就差不多了。
希望对你能有所帮助。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯