輸入一個字符串,內有數字和非數字字符,例如:a123x456 7689?89njnk32lnk123,
將其中連續的數字作為一個整數,依次存放到一維數組a中,例如123放在b[0],456放
在b[1]......統計共有多少個整數,並輸出這些數。弟1行輸出個數,第2行輸出多個整數
,用空格分隔。
#include<stdio.h>
#include<math.h>
void main()
{
int i,j=0,k=0,x=0,n,m,b[100];
char s[100],a[100];
gets(s);
for(i=0;s[i]!='\0';i++)
{
if(s[i]>='0'&&s[i]<='9')
a[j++]=s[i];
else
{
j--;
for(n=0;j>=0;j--,n++)
x+=(a[j]-'0')*(int)pow(10,n);
if(x!=0)
b[k++]=x;
x=0; j=0;
}
}
printf("%d\n",k);
for(m=0;m<k;m++)
printf("%d ",b[m]);
printf("\n");
}
#include
#include
void main()
{
int i,j=0,k=0,x=0,n,m,b[100];
char s[100],a[100];
gets(s);
for(i=0;s[i]!='\0';i++)
{
if(s[i]>='0'&&s[i]<='9')
a[j++]=s[i];
else
{
j--;
for(n=0;j>=0;j--,n++)
x+=(a[j]-'0')*(int)pow(10,n);
if(x!=0)
b[k++]=x;
x=0; j=0;
}
}
/*加以下代碼處理最後一個數據*/
if (j)
{
j--;
for(n=0;j>=0;j--,n++)
x+=(a[j]-'0')*(int)pow(10,n);
if(x!=0)
b[k++]=x;
}
printf("%d\n",k);
for(m=0;m<k;m++)
printf("%d ",b[m]);
printf("\n");
}