
请问大神,C语言题,编程功能实现:输入一个字符串,输出字符串中的数字部分组成的数及这些数字组成的数
请问大神,C语言题,编程功能实现:输入一个字符串,输出字符串中的数字部分组成的数及这些数字组成的数的两倍,如输入字符串“sfgc0g45dhg4”则输出“454908”。...
请问大神,C语言题,编程功能实现:输入一个字符串,输出字符串中的数字部分组成的数及这些数字组成的数的两倍,如输入字符串“sfgc0g45dhg4”则输出“454 908”。。
展开
7个回答
展开全部
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");
}
展开全部
#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)
}
#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)
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
运行下试试 是不是你想要的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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)什么意思,为什么这样用?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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]);
}
#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]);
}
追答
理解错题意了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |