c언어 문자열에서 숫자만 가져와서 출력하기

프로그래밍/C, C++|2021. 2. 18. 16:15
반응형

/* 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다. 만들어진 자연수와 그 자연수의 약수 개수를 출력합니다. 만약 "fsaknf0012lsaf"에서 숫자만 추출하면 0,0,1,2고 이것을 자연수로 만들면 12가 됩니다. 즉 첫 자리 0은 자연수화 할 때 무시합니다. 출력은 12를 출력하고, 다음 줄에 12의 약수의 개수를 출력하면 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다. */ 


# include <stdio.h> 

int main(){ 

    char a[100]; 

    int res = 0, cnt = 0, i; 

    scanf("%s", &a); 

    for(i = 0; a[i]!='\0'; i++) { 

        if(a[i]>=48 && a[i]<=57) { 

            res = res * 10 + (a[i]-48); 

        }

    } 

    printf("자연수 : %d\n",res); 


    for(i = 1; i<=res; i++) { 

        if(res%i ==0) 

            cnt++; 

    } 

    printf("약수의 개수 : %d\n",cnt); return 0; }


출처: https://asthtls.tistory.com/53 [포장빵의 IT]

반응형

댓글()