|
strcmp는 스트링 비교함수로,
#include <string.h> 를 걸어야하고요
if(strcmp(Value[0], "6222") == 0) {
// 실행
}
이예제는 Value[0]값 을 스트링 "6222"와 비교하므로 참이됩니다.
참고로 헬프에서는....
Header File
string.h
Category
Inline Routines, Manipulation Routines
Syntax
#include <string.h>
int strcmp(const char *s1, const char *s2);
int wcscmp(const wchar_t *s1, const wchar_t *s2);
#include <mbstring.h>
int _mbscmp(const unsigned char *s1, const unsigned char *s2);
Description
Compares one string to another.
strcmp performs an unsigned comparison of s1 to s2, starting with the first character in each string and continuing with subsequent characters until the corresponding characters differ or until the end of the strings is reached.
Return Value
If s1 is... return value is...
less than s2 < 0
the same as s2 == 0
greater than s2 > 0
그럼 참고하세요~~
시후 님이 쓰신 글 :
: Value[100][4]에서 4->5로 바꿨습니다.그리고 strcmp함수를 써 봤는데 에러가 나더라구요..
: help를 봐도 strcmp함수는 비교하는것 같던데..단지 크기를 비교하는것 아닌가요..
: 다시 한번 strcmp함수에 대해서 예를 들어주심 정말 감사.....
:
:
:
: 개박살.U&I 님이 쓰신 글 :
: :
: : 안녕하세요? 개박살입니다.
: :
: : C언어에서의 스트링값에 대한 개념이 문제입니다.
: :
: : 스트링이라함은 배열과 포인터를 빼놓을수 없는데, 이걸 설명하려면.. 흠.. (제가 시간이 ..)
: :
: : 일단 해결법은, char Value[100][4] 를 4 -> 5 로 바꾸세요
: :
: : 왜냐면 스트링은 가장마지막에 NULL이 필요하기 때문이죠
: :
: : 그리고나서 비교문인데 제가 이해하기론 "6222" 전부를 비교하려는 목적이시죠?
: :
: : strcmp 라는 스트링 함수를 사용하세요~ (HELP참조)
: :
: : 흠.. 맞는지 모르겠네요 그럼 참고하세요~ (이해가 틀렸다면 죄송합니당)
: :
: : 시후 님이 쓰신 글 :
: : : char BUF[5]={""};
: : : char Value[100][4] ={"6222","2262","6626","6262",
: : : "9960","9690","9969","9096",
: : : "7980","9870","7787","7078",
: : : "1648","6418","1141","1814",
: : : "3086","9836","3383","3638",
: : : "5224","2254","5525","5452",
: : : "8234","2384","8838","8483",
: : : "5779","7759","5575","5957",
: : : "6725","7265","6626","6562",
: : : "1426","4216","1124","1612",
: : : "4533","5343","4434","4143",
: : : "1720","7210","1121","1412",
: : : "4271","2741","4474","4177",
: : : "6268","2668","6666","6466",
: : : "7181","1871","7787","7688",
: : : "5115","1155","5515","5711",
: : : "4276","2746","4474","4577",
: : : "3916","9136","3313","3411",
: : : "3058","8538","3353","3355",
: : : "3853","8533","3351","3355",
: : : "1824","8214","1121","1322",
: : : "9006","8896","9989","9188",
: : : "8723","7283","8828","8922",
: : : "7667","6677","7767","7866",
: : : "9173","1793","9979","9777"};
: : :
: : : 를 선언하고 텍스트파일에서 값을 읽어서 BUF에 저장했습니다.
: : : Value[100][4]와 BUF를 비교하려 하니 에러가 나서 BUF를
: : : AnsiString TEMP = BUF;로 다시 넣었습니다.
: : : 그 다음 for문으로 다음과 같이 돌렸습니다.
: : :
: : : for(cnt = 0 ; cnt < 100 ; cnt++)
: : : {
: : : if(TEMP == Value[cnt][4])
: : : {
: : : //값이 같으면 실행되는 부분.
: : : }
: : : }
: : : if(TEMP != Value[4][cnt])
: : : {
: : : //위의 값이 틀리면 실행되는 부분.
: : : }
: : :
: : : 분명히 step over로 체크를 하면 TEMP와 Value[cnt][4]는 정확한 값이 들어와서
: : : 체크를 합니다.근데 TEMP와 Value[cnt][4]의 값이 같아도 빠져나와서 값이 틀린
: : : 경우를 실행시키네요..뭐가 틀린거죠...좀 이해가 안되서리 이렇게 또 염치불구
: : : 하고 질문을 올립니다..열분 고수님들 답변 부탁드립니다....꾸벅...
|