c문법, C를 최신언어로 마이그 하면서 자주 보게되는 것 중 하나 strcmp/strncmp
c coding >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
/*
* test.c
*
* Created on: 2018. 11. 17.
* Author: DIFY
*/
#include <stdio.h>
#include <string.h>
#define _CRT_SECURE_NO_WARNINGS
int main()
{
int iresult = 0;
char sResult[30];
char * sSample1 = "ABCDA";
char * sSample2 = "ABCD";
char * sSample3 = "ABCDA";
char * iSample1 = "12345";
char * iSample2 = "1234";
char * iSample3 = "12345";
/*char*************************************************************/
iresult = strcmp( sSample1, sSample2 );
sprintf(sResult, "%d", iresult); // %d정수를 문자열로 set
printf("[sSample1:%s,sSample2:%s]=>결과값(sSample1>sSample2) : %s\n", sSample1, sSample2, sResult);
iresult = strcmp( sSample2, sSample1 );
sprintf(sResult, "%d", iresult);
printf("[sSample1:%s,sSample2:%s]=>결과값(sSample1<sSample2) : %s\n", sSample1, sSample2,sResult);
iresult = strcmp( sSample1, sSample3 );
sprintf(sResult, "%d", iresult);
printf("[sSample1:%s,sSample3:%s]=>결과값(sSample1=sSample3) : %s\n", sSample1, sSample3,sResult);
iresult = strncmp( sSample1, sSample2,4 );
sprintf(sResult, "%d", iresult);
printf("[sSample1:%s,sSample2:%s]=>결과값(sSample1,sSample2 4자리까지비교) : %s\n",sSample1, sSample2, sResult);
iresult = strncmp( sSample1, sSample2,5 );
sprintf(sResult, "%d", iresult);
printf("[sSample1:%s,sSample2:%s]=>결과값(sSample1,sSample2 5자리까지비교(ASCII 코드값)) : %s\n", sSample1, sSample2,sResult);
iresult = strncmp( sSample2, sSample1,5 );
sprintf(sResult, "%d", iresult);
printf("[sSample2:%s,sSample1:%s]=>결과값(sSample2,sSample1 5자리까지비교(ASCII 코드값)) : %s\n", sSample2, sSample1,sResult);
/*int*************************************************************/
iresult = strcmp( iSample1, iSample2 );
sprintf(sResult, "%d", iresult);
printf("[iSample1:%s,iSample2:%s]=>결과값(iSample1>iSample2) : %s\n", iSample1, iSample2, sResult);
iresult = strcmp( iSample2, iSample1 );
sprintf(sResult, "%d", iresult);
printf("[iSample1:%s,iSample2:%s]=>결과값(iSample1<iSample2) : %s\n", iSample1, iSample2,sResult);
iresult = strcmp( iSample1, iSample3 );
sprintf(sResult, "%d", iresult);
printf("[iSample1:%s,iSample3:%s]=>결과값(iSample1=iSample3) : %s\n", iSample1, iSample3,sResult);
iresult = strncmp( iSample1, iSample2,4 );
sprintf(sResult, "%d", iresult);
printf("[iSample1:%s,iSample2:%s]=>결과값(iSample1,iSample2 4자리까지비교) : %s\n",iSample1, iSample2, sResult);
iresult = strncmp( iSample1, iSample2,5 );
sprintf(sResult, "%d", iresult);
printf("[iSample1:%s,iSample2:%s]=>결과값(iSample1,iSample2 5자리까지비교(ASCII 코드값)) : %s\n", iSample1, iSample2,sResult);
iresult = strncmp( iSample2, iSample1,5 );
sprintf(sResult, "%d", iresult);
printf("[iSample2:%s,iSample1:%s]=>결과값(iSample2,iSample1 5자리까지비교(ASCII 코드값)) : %s\n", iSample2, iSample1,sResult);
return 0;
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
console 결과값
[sSample1:ABCDA,sSample2:ABCD]=>결과값(sSample1>sSample2) : 1
[sSample1:ABCDA,sSample2:ABCD]=>결과값(sSample1<sSample2) : -1
[sSample1:ABCDA,sSample3:ABCDA]=>결과값(sSample1=sSample3) : 0
[sSample1:ABCDA,sSample2:ABCD]=>결과값(sSample1,sSample2 4자리까지비교) : 0
[sSample1:ABCDA,sSample2:ABCD]=>결과값(sSample1,sSample2 5자리까지비교(ASCII 코드값)) : 65
[sSample2:ABCD,sSample1:ABCDA]=>결과값(sSample2,sSample1 5자리까지비교(ASCII 코드값)) : -65
[iSample1:12345,iSample2:1234]=>결과값(iSample1>iSample2) : 1
[iSample1:12345,iSample2:1234]=>결과값(iSample1<iSample2) : -1
[iSample1:12345,iSample3:12345]=>결과값(iSample1=iSample3) : 0
[iSample1:12345,iSample2:1234]=>결과값(iSample1,iSample2 4자리까지비교) : 0
[iSample1:12345,iSample2:1234]=>결과값(iSample1,iSample2 5자리까지비교(ASCII 코드값)) : 53
[iSample2:1234,iSample1:12345]=>결과값(iSample2,iSample1 5자리까지비교(ASCII 코드값)) : -53
서식 문자 |
출력 형태 |
c | 문자 |
d or i | 부호 있는 십진법으로 나타난 정수 |
e | 지수 표기법(Scientific notation) 으로 출력하되, e 문자를 이용한다. |
E | 지수 표기법(Scientific notation) 으로 출력하되, E 문자를 이용한다. |
f | 십진법으로 나타낸 부동 소수점 수 |
g | %e나 %f 보다 간략하게 출력 |
G | %E나 %f 보다 간략하게 출력 |
o | 부호 있는 팔진수 |
s | 문자열 |
u | 부호없는 십진법으로 나타낸 정수 |
x | 부호없는 16 진법으로 나타낸 정수 (소문자 사용) |
X | 부호없는 16 진법으로 나타낸 정수 (대문자 사용) |
p | 포인터 주소 |
n | 아무것도 출력하지 않는다. 그 대신, 인자로 부호 있는 int 형을 가리키는 포인터를 전달해야 되는데, 여기에 현재까지 쓰여진 문자 수가 저장된다. |