#include <stdio.h>
#include <string.h>
int ConvToInt(char c){
static int diff=1-'1';
return c+diff;
}
//이래도 되는거임? 넣는 건 캐릭터인데 나오는 것에도 한부분인 c는 캐릭터인데 전체 다합쳐서 인티저다?
//문제풀기시작:
int main(void)
{
char str[50];
int len, i;
int sum=0;
printf("문자열 입력:");
fgets(str, sizeof(str),stdin);
len=strlen(str);
for(i=0;i<len;i++)
{
if('1'<=str[i] && str[i]<='9')
sum +=ConvToInt(str[i]);
}
printf("숫자의 총 합: %d \n",sum);
return 0;
}
일단 풀지 못했다. 감정적이 되면서 계속 붙잡고 있으면서 뇌의 리소스만 잡아먹었다.
시간을 정해두고(대략 40분에서 1시간 생각중) 안풀리면, 그냥 해답을 보고 이해하고 핵심아이디어를 익히는 것이 좋을 것 같다.
스트링하고 인티저하고 뺄셈을 했을 때 아마 아스키코드값으로 나오는 모양인데, 그게 일정해서, 똑같이 생긴 스트링하고 인티저를 왔다갔다 할 수 있는지 몰랐다.
for문을 돌릴 때 strlen을 쓰면 더 좋은 풀이가 될 수 있는 것 같다.
0은 더하나 마나 이구나!