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

2024-11-17 12:26:27
推荐回答(5个)
回答1:

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");
}

回答2:

#include
#include

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{
if(s[i]>=0&&s[i]<=9)
{
a[j]=s[i];
j++;
count++;
}
}
num=a[0];
for (k=1;k++;k{
num=num*10+a[k];
}
printf("%d %d ",num, num*2)
}

回答3:

#include 
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;
}

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

回答4:

#include  
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;
}

回答5:

#include
#include
void main()
{
char a[100];
int b[100];
int i=0,j=0;
gets(a);
for(i=0;i{
if(a[i]>=48&&a[i]<=57)
{
b[j]=a[i];
j++;
}
}
for(j=0;jprintf("%d%d\n",b[j],2*b[j]);
}