C語言程式設計練習題 輸入一個字串,內有數位和非數位字元,例如 A123x456 17960?操作:將連續的數位作爲一個整數,一次存放到一陣列a中,統計共有多少個整數,並輸出這些數。

2020-08-14 21:08:16
#include<stdio.h>
#include<stdlib.h>
int main()
{
	char str[999];
	printf("PLEASE ENTER A STRING\n");
	gets(str);//呼叫第二個標頭檔案 
	int t=0,i=0,j=0,k=0;
	int a[999];
	char *p=str;
	for(;*p!='\0';p++)
	{
		
		if(*p>='0'&&*p<='9')
		{
			t=t*10+(*p-'0');//將多個數串成字串 
			k=1;//識別符號,是1就寫入陣列 
		}
		else//碰到下個不是數位,就把之前的數位存入陣列 
		{
		  if(k==1)
		  {
			a[j++]=t;
			t=0;} 
		    k=0;
	    }
	 }
	 if(k==1) 
		{a[j++]=t;} 
		a[j]='\0';	
	int *q=a;
	printf("THERE ARE %d NUMBERS \n",j);
	for(;*(q+i)!='\0';i++)
	{
		printf("%d ",*(q+i));
	 } 
	return 0;
}

在这里插入图片描述
編寫過程參考過zyckhuntoria以及其他使用者的回答,進行了簡化和修改
附上前者鏈接https://blog.csdn.net/zyckhuntoria/article/details/79594482