본문 바로가기
기초 코딩/C 언어

strtok 함수로 숫자 분리 후, 연산 값 참/거짓 출력하기 (C언어)

by 실패한_상담사 2024. 4. 5.
반응형

 

strtok 함수로 식의 참 거짓 출력하기
strtok 함수로 입력한 식의 숫자를 분리해 직접 계산 할 수 있습니다.

 

strtok함수는 <string.h> 헤더를 사용하며, 문자열을 잘라 문자열의 포인터를 반환하는 함수 입니다.

 

만약 문자열을 입력 받아 strtok 함수를 이용해 숫자를 분리하고, 연산이 참인지 거짓인지 판별하는 C언어 코드를 만들고 싶다면, 이렇게 구현하실 수 있습니다.

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char parsing(char* String, int* data)
{

	char* p;
	char oper;

	p = strtok(String," ");// 3
	data[0] = atoi(p);
	
	p = strtok(NULL, " ");// -
	oper = *p;

	p = strtok(NULL, " ");//2
	data[1] = atoi(p);
	

	p = strtok(NULL, " ");//=

	p = strtok(NULL, " ");//1
	data[2] = atoi(p);



	return oper;
}

int main()		
{
	int dap;
	char String[30]; 
	int data[3];
	int result=0;

	printf("문자열을 입력하세요:");	//문자열 입력받기
	gets_s(String, sizeof(String));
	char oper = parsing(String, data);

	switch (oper)
	{
	case '+': result = data[0] + data[1]; break;
	case '-': result = data[0] - data[1]; break;
	case '*': result = data[0] * data[1]; break;
	case '/': result = data[0] / data[1]; break;
	case '%': result = data[0] % data[1]; break;
	}	//if 문 보다는 이런 경우 switch 문이 좋음

	if (result == data[2]) {
		printf("참입니다.");
	}
	else
	{
		printf("%d %c %d는 %d 입니다.", data[0], oper, data[1], result);
	}

	return 0;

}

 

참일 경우 '참입니다.' 를, 거짓일 경우 입력한 연산식과 옳은 답을 출력합니다.

 

만약 다른 기능이 필요하다면, 조금 수정해서 추가할 수 있습니다.

 

 

 

반응형

댓글