永发信息网

编写一个函数func,通过略去非数字字符,将字符串s转换为 一个整数

答案:2  悬赏:30  手机版
解决时间 2021-02-06 14:57
  • 提问者网友:眉目添风霜
  • 2021-02-05 18:16
long func(char *s)

{int i,j,k;
long int sum=0;
for(i=0;*(s+i)!='\0';i++)
if(*(s+i)<48||*(s+i)>57)
{k=i;
for(k;*(s+k)!='\0';k++)
*(s+k)=*(s+k+1);
}
for(i=0;*(s+i)!='\0';i++)
;
for(j=0;i!=0;j++,i--)
sum=sum+(*(s+j)-'0')*pow(10,i-1);
return(sum);
}
请大家帮我看看这个程序哪里出问题了?谢谢
最佳答案
  • 五星知识达人网友:蕴藏春秋
  • 2021-02-05 18:24
#include
#include

int func(char *s)
{
int i;
int j = 0;
char buffer[256];
for(i = 0; s[i] != '\0'; i++)
{
if(isdigit(s[i]))
{
buffer[j] = s[i];
j++;
}
}
buffer[j] = '\0';
return (atoi(buffer));
}

把数字拿出来不就得了,为什么要去掉非数字啊
全部回答
  • 1楼网友:慢性怪人
  • 2021-02-05 19:49
#include &lt;stdio.h&gt; #include &lt;ctype.h&gt; int func(char *s) { int i; int j = 0; char buffer[256]; for(i = 0; s[i] != '\0'; i++) { if(isdigit(s[i])) { buffer[j] = s[i]; j++; } } buffer[j] = '\0'; return (atoi(buffer)); } 把数字拿出来不就得了,为什么要去掉非数字啊
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯