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);
}
请大家帮我看看这个程序哪里出问题了?谢谢
编写一个函数func,通过略去非数字字符,将字符串s转换为 一个整数
答案:2 悬赏:30 手机版
解决时间 2021-02-06 14:57
- 提问者网友:眉目添风霜
- 2021-02-05 18:16
最佳答案
- 五星知识达人网友:蕴藏春秋
- 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));
}
把数字拿出来不就得了,为什么要去掉非数字啊
#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 <stdio.h>
#include <ctype.h>
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));
}
把数字拿出来不就得了,为什么要去掉非数字啊
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯