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 |