C언어 문제/문법 이해
[main함수] 명령어로 두 데이터 입력후 계산하기
자연&사람
2019. 11. 4. 21:35
반응형
문제).
명령어(main 함수)의 argument로 두 개의 정수를 입력받아서 두 수를 더하는 프로그램을 작성하시오.
단, atoi( ), atol( )등과 같은 데이터 변환 표준함수는 사용불가
실행 예제)
$ sum 100 200
100 + 200 = 300
답은 아래에... ↓
스스로 풀어보시고... ↓
아래 답과 비교해보세요. ↓
문제 풀이
1. Pointer를 활용한 방법 - sum.c
#include <stdio.h>
int str2int(const char *value)
{
int ret = 0;
while(*value) {
if(('0' <= *value) && (*value <= '9')) {
ret = ret * 10 + *value - '0';
} else {
return ret;
}
value++;
}
return ret;
}
int main(int argc, char **argv)
{
int idx;
if(argc != 3) {
printf("usage: %s 숫자1 숫자2\n", argv[0]);
return 1;
}
printf("%s + %s = %d\n", argv[1], argv[2], str2int(argv[1]) + str2int(argv[2]));
return 0;
}
2. 배열을 활용한 방법 - sum.c
#include <stdio.h>
int str2int(const char *value)
{
int ret = 0;
int idx;
for(idx = 0; value[idx]; idx++) {
if(('0' <= value[idx]) && (value[idx] <= '9')) {
ret = ret * 10 + value[idx] - '0';
} else {
return ret;
}
}
return ret;
}
int main(int argc, char **argv)
{
int idx;
if(argc != 3) {
printf("usage: %s 숫자1 숫자2\n", argv[0]);
return 1;
}
printf("%s + %s = %d\n", argv[1], argv[2], str2int(argv[1]) + str2int(argv[2]));
return 0;
}
반응형