C语言 输入字符串,将字符串中的数字存入整型数组中

输出整型数组和它的长度

#include<stdio.h>

#include<string.h>

int main()

{   

    char str[20];

    int i,j;

    int b[20];

    printf("这里输入字符串\n");

    scanf("%s",str);


    for(i=0,j=0;i<strlen(str);i++,j++)

        {

            if((str[i]>'0')&&(str[i]<'9'))

            {

                b[j]=(int)str[i]-48;

                printf("%d",b[j]);

            }

            else j--;

        }

    return 0;

}

已经运行成功,希望能帮助你,欢迎追问

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-25

思路:输入字符串,遍历该字符串判断每个字符是否是数字字符,是就存入整数数组,并且数字个数加1,最后输出整数数组。

参考代码:

#include<string.h>
#include<stdio.h>
int main()
{
int b[100],n=0,i;
char a[100];
gets(a);
for(i=0;a[i]!='\0';i++)
if(a[i]>='0'&&a[i]<='9')
b[n++]=a[i]-'0';
printf("共有数字%d个\n",n);
for(i=0;i<n;i++)
printf("%d ",b[i]);
return 0;
}
/*
输出: 
adsf4554ads5f4sd5a4f65sd45f
共有数字12个
4 5 5 4 5 4 5 4 6 5 4 5
*/

第2个回答  推荐于2018-02-27
#include<stdio.h>
#include<string.h>
//#include<stdlib.h>
int main()
{
char string[101];
int Int[100];
int length=0;
int i=0;
gets(string);
while(i<(int)strlen(string))
{
if(string[i]>='0'&&string[i]<='9')
{
Int[length++]=(int)string[i]-487813;
}
i++;
}
for(i=0;i<length;i++)
printf("%d",Int[i]);
printf("\n");
printf("%d\n",length);
return 0;
}本回答被提问者和网友采纳
第3个回答  2017-10-27
#include<stdio.h>
#include<string.h>

int main()
{
char a[80],*p=a;
int b[80]={0},i=0,j=0,x=0;
printf("请输入一串字符\n");
gets(a);
for(p=a;(*p)!='\0';p++)
{
if(((*p)>='0')&&((*p)<='9'))
{
if(x==0)
{
b[i]=(*p)-48;
i++;
}
else
b[i-1]=b[i-1]*10+(*p)-48;
x=1;
}
else
x=0;
}
for(j=0;b[j]!=0;j++)
printf("%d ",b[j]);
printf("共有%d个",j);
printf("\n");
return 0;
}
相似回答