[C] 씹어먹는 C 언어 - <19. main 함수의 인자, void 형>

Kim Dongil·2022년 10월 31일
0

C

목록 보기
26/28

1. 메인함수의 인자를 활용한 계산기를 만들어보세요.

예를 들어서

을 치면 15 가 나오게 하면 되지요.

이 때, 5, +, 10 은 모두 다른 인자로 봐야하겠죠. 기초적인 단계 이므로 연산자는 하나만 써도 된다고 합시다.참고로 인자는 모두 문자열 형태로 오기 때문에 문자열로 된 수를 int 형으로 바꾸는 작업이 필요할 것입니다.

#include <stdio.h>

int charToInt(char* number);

int main(int argc, char** argv) {
	int num1, num2;

	if (argc != 4) {
		printf("받은 인자의 갯수 : %d \n", argc);
		return 0;
	}

	num1 = charToInt(argv[1]);
	num2 = charToInt(argv[3]);

	if (*argv[2] == '+') {
		printf("%d + %d = %d \n", num1, num2, num1 + num2);
	}

	return 0;
}

int charToInt(char* number) {
	int i = 0;
	int result = 0;
	int number_place = 1;

	while (number[i]) i++;

	while (i) {
		i--; 
		result += (number[i] - 48) * number_place;
		number_place *= 10;
	}

	return result;
}

char** argv 의 뜻은 (char*) 형을 가리키는 포인터이다.
즉 포인터의 배열 이다.

argv 는 포인터들의 배열을 가리키고 있고, 그 포인터 배열에서의 각각의 원소, 즉 포인터들은 인자로 전달된 문자열들을 가리키고 있습니다.
이 때, 이 문자열들은 메모리의 다른 공간에 보관되어 있겠죠.
따라서 우리는 argv[i] 를 통해 특정한 인자의 문자열에 저장된 주소값을 나타낼 수 있게 됩니다.

씹어먹는 C 언어 - <19. main 함수의 인자, 텅 빈 void 형>

0개의 댓글