문자열 의 연속 적 인 숫자 통계

1582 단어 데이터 구조
\ # include / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 문자열 을 입력 하 십시오.302 tab 5876 은 그 중의 연속 적 인 숫자 를 하나의 정수 로 하여 한 배열 a 에 순서대로 저장 합 니 다.예 를 들 어 123 은 a [0] 에 보관 하고 456 은 a [1] 에 보관 합 니 다. 총 몇 개의 정수 가 있 는 지 집계 하고 이 수 를 출력 합 니 다. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * / /void main()
{
char str[50];
char *pstr = str;
int i = 0,j = 0;
int digit, k, m, e10;
int num[20], n_num = 0;  //n_num       
int *pa = num;   
int *pnum = num;           

gets(str);

while((*(pstr+i)) != '\0')
{
	if((*(pstr+i)) >= '0' && (*(pstr+i))<='9')  // 
	{
		j++;     //  if - else                
		
	}
	else
	{
		if(j > 0) //        
		{
			digit = *(pstr+i-1) - '0'; // if   ,i           ,  *(pstr+i-1)     	
			k = 1;  //    
			
			while(k < j) //             digit 
			{
				e10 = 1;
				for(m = 1; m <= k; m++)
					e10 = e10 * 10;	
				digit = digit + (*(pstr+i-1-k) - '0')*e10;
				k++;
			} 
			
			*pnum = digit;
			n_num++;
			pnum++;
			j = 0;
		}
		
	}
	
	i++;
}	

if(j > 0)  //             
{
	digit = *(pstr+i-1) - '0'; //       digit
	k = 1;
	while(k < j)
	{
		e10 = 1;
		for(m = 1; m <= k; m++)
			e10 = e10*10;
		digit = digit + (*(pstr + i - 1 -k) - '0') * e10;  //      
		k++; 	
	}
	
	*pnum = digit;
	n_num++;
	pnum++;
	j = 0;
}	

//   
 for(j = 0; j < n_num; j++)
 	printf("%d ", *(pa + j));

}

좋은 웹페이지 즐겨찾기