본문 바로가기

ETC Programmings

atoi 함수를 이용해서 문자열의 숫자들의 합을 구하기

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

#include <stdio.h>

#include <stdlib.h>

 

int checkNum(char *str);

int getSize(char *str);

int numCharToInt(char *str);

 

int checkNum(char *str){

             int sum = 0;

             int          i; // 합을반영할숫자, 인덱스옮겨갈변수

             char letter;

             for(i = 0 ; i < getSize(str) ; i++){

                           //printf("%c\n", str[i]);

                           if (str[i] > '/' && str[i] < ':'){

                                        letter = str[i];

                                        sum += letter - '0';

                           }

             }

             return sum;

}

 

int getSize(char *str){

             int size = 0;

             int i;

 

             for(i = 0;;i++){

                           if(str[i] == '\0')

                                        break;

                           else

                                        size++;

                           }

             return size;

}

 

void main(){

             char str[100] = "1abc2ej34";

             printf("%d\n", checkNum(str));

}



아.. -ㅅ- atoi 라는 함수를 이용해서 문자열에 있는 숫자들을 골라내서 그 합을 구하라는 연습문제... atoi를 이용 안해도 되는거였습니다.. 사실 atoi가 골때리는 함수더라고요.. -ㅅ- 34 처럼 연속되는 경우에는 3과 4로 인식을 안하고 34로 인식을 하더라구요 ~_~ ㅋ 하나씩 골라내서 더해야합니다. ㅋㅋ