336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

061 strncmp, _strnicpm


개념 : 


1. string.h에 포함 되어 있다.


2. strcmp, _stricmp 와 같은점은 문자열검사를 하는것이고 다른것이 앞에서부터 몇바이트를 검사할것인지를 지정해준다.



목표: 


명령인지를 체크하고 그명령문이라면 프로그램이 멈추는 기능을 구현해보자.




소스코드 : main.c

#include <stdio.h>

#include <string.h>


#define TRUE 1

#define FALSE 0

#define MAX 256


int main(void)

{

char *pString = "Cmd";

char szBuffer[MAX] = { 0, };

int nMatchByte = strlen(pString);

int nMatch = 0;


while (TRUE)

{

printf("input : ");

gets_s(szBuffer, sizeof(szBuffer));

nMatch = strncmp(pString, szBuffer, nMatchByte);


if (nMatch == 0)

{

puts("Matched Cmd");

break;

}

else

{

printf("%d ", nMatch);

puts("error code");

}

}


puts("Checked CMD");

puts(szBuffer);


memset(szBuffer, '\0', sizeof(szBuffer));// 버퍼 공간을 초기화해준다.


while (TRUE)

{

printf("input : ");

gets_s(szBuffer, sizeof(szBuffer));

nMatch = _strnicmp(pString, szBuffer, nMatchByte);


if (nMatch == 0)

{

puts("Matched Cmd");

break;

}

else

{

printf("%d ", nMatch);

puts("error code");

}

}


puts("Checked CMD");

puts(szBuffer);




return 0;

}



결과


#strncmp, #_strnicmp




062 strcat, strncat, strcat_s, strncat_s


개념 : 


1. string.h 에 포함되어있다.


2. 비쥬얼 스튜디오 2010 이상 버전 부터는 _s를 붙여서 사용한다.


3. 첫번째 문자열에 두번째 문자열값을 복사 해주는데 첫번째 문자열 끝부분을 연결하여 붙여준다.



목표 : 


입력한 문자들을 메모리에 저장하고 exit 라고 입력하기전까지 기록한다.



소스코드 : main.c

#include <stdio.h>

#include <string.h>


#define TRUE 1

#define FALSE 0


#define BUFFER_MAX 1024

#define TEMP_MAX 256

#define MAX_CHARACTERS 5


int main(void)

{

char szDest[BUFFER_MAX] = { 0, };

char szTemp[TEMP_MAX] = { 0, };


int nCount = 0;

puts("strcat_s");

while (TRUE)

{

printf("input (progream stop exit): ");

gets_s(szTemp, sizeof(szTemp));


if (_stricmp("exit", szTemp) == 0)

{

puts("exit, storp program");

break;

}

else

{

nCount += strlen(szTemp);


if (nCount >= sizeof(char) * BUFFER_MAX)

{

puts("memory full, stop program");

break;

}

else

{

strcat_s(szDest, sizeof(szDest), szTemp);

strcat_s(szDest, sizeof(szDest), "\n");//개행을 넣어준다.

}


}

}


puts(szDest);


memset(szDest, 0, sizeof(szDest)); // 버퍼 초기화


nCount = 0;

puts("strncat_s");

while (TRUE)

{

printf("input (progream stop exit): ");

gets_s(szTemp, sizeof(szTemp));


if (_stricmp("exit", szTemp) == 0)

{

puts("exit, storp program");

break;

}

else

{

nCount += 5;


if (nCount >= sizeof(char) * BUFFER_MAX)

{

puts("memory full, stop program");

break;

}

else

{

strncat_s(szDest, sizeof(szDest), szTemp, MAX_CHARACTERS); // 특징은 5개만 뽑아서 연결해준다.

strcat_s(szDest, sizeof(szDest), "\n");//개행을 넣어준다.

}


}

}

puts(szDest);

return 0;

}




결과




#c언어, #c언어입문, #프로그램입문, #strcat, #strncar, #strcat_s, #strncat_s

'Programing - C > C Basic grammar ' 카테고리의 다른 글

064 strstr  (0) 2017.07.28
063 strlen 사용및 구현  (0) 2017.07.28
060 strcmp, _stricmp 구현해보자  (0) 2017.07.27
059 strcmp, _stricmp  (0) 2017.07.27
058 strcpy 구현해보기  (0) 2017.07.27

+ Recent posts