永发信息网

编写一个程序实现如下功能:输入一个字符串,内有数字和非数字字符,如: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函数加上去,就差不多了。 希望对你能有所帮助。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯