다짜봤는데 왜 안되는걸까요?? 문자열관련된것(컴앞대기요)
세실
#includestdio.h
#include string.h
int main(void)
{
char sik[5];
int n=0;
char *token[5];
int a,b,c;
float d;
token[n] = strtok( sik, );
while(1)
{
if(token[n]==NULL) break;
token[++n] = strtok( NULL, );
}
if(token[0]==add)
{
a = &token[1];
b = &token[2];
c= a+b;
printf(연산의 결과: %d, c);
}
if(token[0]==sub)
{
a = &token[1];
b = &token[2];
c= a-b;
printf(연산의 결과: %d, c);
}
if(token[0]==mul)
{
a = &token[1];
b = &token[2];
c= a*b;
printf(연산의 결과: %d, c);
}
if(token[0]==div)
{
a = &token[1];
b = &token[2];
d = a/b;
printf(연산의 결과: %f, d);
}
printf(연산을 입력하시오:);
gets(sik);
}
그러니까
연산 입력:div 6 2 // 엔터 딱하면
결과:3 //이렇게 나오게 하고 싶습니다
에러같은건 없는데
첫줄을 하면 그냥 다음줄에 끝나버립니다;; 왜저려죠??
add가 안되나요?? -_-;;
그리고 token[0]에 add sub mul div 들어가고
token[1] token[2]에는 숫자가 들어가는게 맞죠?
근데 그게 문자열이라서 숫자를 못읽는건가요?? 처음에 토큰끼리 더할수 없다고해서
토른걸 int형 정수로 받아서 ab처럼 했는데도 안됩니다..
-
큰솔
1. token[1]과 [2]는 문자열이므로 int 형 변수 a와 b에 넣을 때 atoi 함수를 써야 되겠네요.
a = atoi ( token[1] ) 이런식으로 사용하시면 token[1]이 가리키는 문자열을 정수로 변환해서 a에 할당합니다.
2. if문에서 문자열 끼리 비교할 때 strcmp 함수를 써야 되구요.
if( strcmp(token[0],\add\) == 0 ) 이런식으로 사용합니다.
strcmp 함수가 의미하는 바는 token[0]이