请问大神,C语言题,编程功能实现:输入一个字符串,输出字符串中的数字部分组成的数及这些数字组成的数

请问大神,C语言题,编程功能实现:输入一个字符串,输出字符串中的数字部分组成的数及这些数字组成的数的两倍,如输入字符串“sfgc0g45dhg4”则输出“454908”。... 请问大神,C语言题,编程功能实现:输入一个字符串,输出字符串中的数字部分组成的数及这些数字组成的数的两倍,如输入字符串“sfgc0g45dhg4”则输出“454 908”。。 展开
 我来答
百度网友af6bb57
2015-06-18 · TA获得超过537个赞
知道小有建树答主
回答量:789
采纳率:100%
帮助的人:244万
展开全部
void main()
{
char str[50];
int i=0; //i是数组下标. 
gets(str); //输入字符串.
int s=0;
while(str[i]) //当数组元素不是字符串结束符时.执行while

    if(str[i]>='0'&&str[i]<='9') //如果数组元素是数字. 就输出这个元素.
    {
        s=s*10+int(str[i])-int('0');
    }
    else
    {
        if(str[i-1]>='0'&&str[i-1]<='9') //否则判断前一个元素是不是数字.是的话输出一个空格.
        printf("%d%d", s, s*2);
        printf(" "); 
    }
    i++;
}
printf("\n");
}
forever2z312
2015-06-18 · TA获得超过417个赞
知道小有建树答主
回答量:385
采纳率:0%
帮助的人:185万
展开全部
#include<stdio.h>
#include<string.h>

int main()
{
char s[60];//长度可以自己定义
int a[60];//长度可以自己定义
printf("请输入字符串\n");
scanf("%s",s);
int s_long=strlen(s);
int i =0,count=0,j=0,k=0,num;
for (i=0;i++;i<s_long)
{
if(s[i]>=0&&s[i]<=9)
{
a[j]=s[i];
j++;
count++;
}
}
num=a[0];
for (k=1;k++;k<count)
{
num=num*10+a[k];
}
printf("%d %d ",num, num*2)
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风若远去何人留
2015-06-18 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20403 获赞数:450144
专业C/C++软件开发

向TA提问 私信TA
展开全部
#include <stdio.h>
int main()
{
int r = 0;
int i;

while(1)
{
i = getchar();
if(i == '\n' || i == EOF) break;
if(i<='9' && i >= '0')
{
r *= 10;
r += i - '0';
}
}
printf("%d %d\n", r, r*2);

return 0;
}

运行下试试 是不是你想要的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
推荐于2018-02-27 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6993万
展开全部
#include <stdio.h> 
int main()
{
char str[100];
int i,num=0;
printf("input str: ");
gets(str);
for( i=0;str[i];i++ )
{
if ( str[i] >='0' && str[i]<='9' )
num=num*10+str[i]-'0' ;
}
printf("%d %d\n", num, num*2 );
return 0;
}
追问
那个“ -'0' ”是什么意思,还有(i=0;str(i);i++)中的str(i)什么意思,为什么这样用?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d9a0d1a
2015-06-18
知道答主
回答量:9
采纳率:0%
帮助的人:3.3万
展开全部
#include<stdio.h>
#include<string.h>
void main()
{
char a[100];
int b[100];
int i=0,j=0;
gets(a);
for(i=0;i<strlen(a);i++)
{
if(a[i]>=48&&a[i]<=57)
{
b[j]=a[i];
j++;
}
}
for(j=0;j<strlen(b);j++)
printf("%d%d\n",b[j],2*b[j]);
}
追答
理解错题意了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式