반응형
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;
}
참일 경우 '참입니다.' 를, 거짓일 경우 입력한 연산식과 옳은 답을 출력합니다.
만약 다른 기능이 필요하다면, 조금 수정해서 추가할 수 있습니다.
반응형
'기초 코딩 > C 언어' 카테고리의 다른 글
#define _CRT_SECURE_NO_WARNINGS 는 왜 써야하는가?(부제: C4996은 왜 나오나요?) (0) | 2024.05.24 |
---|
댓글