문자열의 숫자변환 및 합구하기 질문

문자열의 숫자변환 및 합구하기 질문입니다.

-적당한 길이의 문자열을 입력받는다.
-그 안에 존재하는 숫자들의 총 합을 계산한다.

예) 입력받은 문자열이 ab15fe43이라고 하면
1+5+4+3=13이므로 13을 출력해준다.제가 짠 소스
int main(void)
{
char str[10];
int i;
int result=0;
fgets(str, sizeof(str), stdin);

for(i=0;istrlen(str);i++){
result += atoi(&(*(str+i)));
}
printf(%d, result);
return 0;
}

근데 이게 아닌것 같더라구요. 어떻게 고쳐야 되는지 모르겠습니다.
알려주세요^^

댓글 2

  • 비 2026.05.15

    str은 문자열을 저장하고 있습니다.. 문자열이라는 것은 특수 문자 숫자 영어로 알파벳이지요 지금은
    유니코드(영어가 딸려서리)로서 더 넓은 코드를 쓰고 있지만 기본은 ...
    strlen만큼 돌면서 숫자를 구분하기 위해서 아스키코드 48에서57이 나왔네요
    이면 숫자이니 구분해서 더하든 빼든 맘대로....요

  • 쥬디시어스 2026.05.15

    atoi 함수는 문자를 하나씩 변환시켜는것이 아닌 숫자가 아닌 값을 만날때까지 진행되는것으로 알고 있습니다. 2311 이라면.. 2,3,1,1 이 아니라 \이천삼백십일\로 정수화 시킵니다.

C언어 다른 글

목록