永发信息网

C语言 字符串转换

答案:2  悬赏:80  手机版
解决时间 2021-02-04 05:06
Description

输入一个以回车结束的字符串,它由数字和字母组成,请过滤掉所有非数字字符,然后将数字字符串转换成十进制整数后乘以2输出。

Input

输入一个以回车结束的字符串,长度不超过100,由数字和字母组成。

Output

将转换后的整数乘以2输出,测试数据保证结果在int范围内。

Sample Input

sg987aa65t498

Sample Output

197530996

如果能改一下最好 我知道错的不少 实在不行麻烦再写一个。

#include
#include
#include
int main()
{
int i,n,j=0,sum=0;
char b[100],a[100];
scanf("%d",&n);
gets(b);
for(i=0 ; b[i]!='\0' ; i++)
{
if(isdigit(b[i])==1)
{
a[j]=b[i];//如果是数字把b[i]的数赋给a[j]
j++;
}
}
for(i=j ; i>=1 ; i--)
{
a[i]*pow(10,i+1);//从最高位乘10的i+1次方
sum+=a[i];
}
printf("%d",sum*2);
}
最佳答案
int i,j=0,sum=0;
    char b[100],a[100];
    scanf("%s", b);
    for(i=0 ; b[i]!='\0' ; i++)
    {
        if(isdigit(b[i])==1)
        {
            a[j]=b[i];//如果是数字把b[i]的数赋给a[j]
            j++;
        }
    }
    for(i = 0 ; i < j ; i++)
    {
        sum = sum + (a[i] - 48)*pow(10,j - i - 1); // a[i]内是字符转换成十进制数ASCII-48

    }
    printf("%d",sum*2);
全部回答

#include <stdio.h>

int strlen(char *s) {  int len = 0;  char *p = s;  while(*p++) ++len;  return len; }

double atod(char *s) { // 将字符串转换为浮点数  double fnum = 0.0;  char *p = s;  int i,slen,inum = 0,pointpos = -1;  slen = strlen(s);  while(*p) {   if(*p == '.') { // 确定第一个小数点位置    pointpos = p - s;    break;   }   ++p;  }  if(pointpos == -1) {   for(i = 0; s[i]; ++i)    // 没有小数,仅需转换整数部分    inum = 10*inum + s[i] - '0';   return (double)inum;  }  for(i = 0; i < pointpos; ++i)    // 有小数,先转换整数部分   inum = 10*inum + s[i] - '0';  for(i = slen - 1; i > pointpos; --i) {    // 再转换小数部分   if((s[i] >= '0') && (s[i] <= '9'))    // 串中可能还有'.',必须过滤掉    fnum = (fnum + s[i] - '0')/10.0;  }  return(inum + fnum); }

double convert(char *s) { // 提取数字串  int i = 0;  char *p = s,q[51];  while(*p) {   if((*p >= '0') && (*p <= '9') || (*p == '.')) q[i++] = *p;   ++p;  }  q[i] = '\0';  printf("数字串 : %s\n",q);  return atod(q); }

int main() {  char s[51];  printf("请输入字符串 : ");  gets(s);  printf("%s中的数字串是:%.4lf\n",s,convert(s));  return 0; }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么偶像来了第一季有十人而第二季只有八人
谁能帮我给CF的灵狐画一张电子版的素描
这蘑菇是否有毒,是什么蘑菇?生长在竹林中的
北京交通大学-语言与传播学院我想知道这个在
松堂的意思是什么啊?知道的请说下!
我国目前实行什么什么的个人收入分配制度?
随缘酒吧地址有知道的么?有点事想过去
旺仔童鞋在哪里啊,我有事要去这个地方
【作文我的新同学】我的新同学 作文
城东区宝宝艺术幼儿园地址有知道的么?有点事
诉吧主题酒吧地址有知道的么?有点事想过去
乱世王者体力和金币怎么用比较好 体力金币使
冰誉的意思是什么啊?知道的请说下!
凭天由命
OPPO我想知道这个在什么地方
推荐资讯
关于一次体验活动的经历与感受日记三百字
以闹钟的声音为主题写一篇两百字以内的作文
身高158,净腿长(也就是从地面量到大腿根)
一段网上谈话。甲:我所在的地方:一年中,正
汉兰达2015款前面那个a钮干什么用的
桐叶租车(天津机场店)地址在哪,我要去那里办
半妆的意思是什么啊?知道的请说下!
难道没有一个人知道吗?
清古派出所地址在什么地方,想过去办事
初色工作室怎么去啊,我要去那办事
【八大行星排列顺序】太阳系八大行星按照直径
鼎盛财富投资管理(北京)有限公司威海分公司文
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?