헷갈리기 쉬운 문자열 함수 null character 처리 결과
예제 strncpy 1)
char *strNum = "1234567890"; // null 포함 11 character
char strBuf[12] = "ABCDEFGHIJK"; // null 포함 12 character
printf("\n");
printf(" strNum = \"%s\", strlen = %d \n", strNum, strlen(strNum));
printf(" strBuf = \"%s\", strlen = %d \n", strBuf, strlen(strBuf));
printf("\n");
strncpy(strBuf, strNum, 10);
printf(" strBuf <----strncpy(n:10)---- strNum \n");
printf("\n");
printf(" strBuf = \"%s\", strlen = %d \n", strBuf, strlen(strBuf));
printf("\n");
----------------------------- 결과 -------------------------------
strNum = "1234567890", strlen = 10
strBuf = "ABCDEFGHIJK", strlen = 11
strBuf <----strncpy(n:10)---- strNum
strBuf = "1234567890K", strlen = 11
------------------------------------------------------------------
예제 strncpy 2)
char *strNum = "1234567890"; // null 포함 11 character
char strBuf[12] = "ABCDEFGHIJK"; // null 포함 12 character
printf("\n");
printf(" strNum = \"%s\", strlen = %d \n", strNum, strlen(strNum));
printf(" strBuf = \"%s\", strlen = %d \n", strBuf, strlen(strBuf));
printf("\n");
strncpy(strBuf, strNum, 11);
printf(" strBuf <----strncpy(n:11)---- strNum \n");
printf("\n");
printf(" strBuf = \"%s\", strlen = %d \n", strBuf, strlen(strBuf));
printf("\n");
----------------------------- 결과 -------------------------------
strNum = "1234567890", strlen = 10
strBuf = "ABCDEFGHIJK", strlen = 11
strBuf <----strncpy(n:11)---- strNum
strBuf = "1234567890", strlen = 10
------------------------------------------------------------------
예제 snprintf 1)
char *strNum = "1234567890"; // null 포함 11 character
char strBuf[12] = "ABCDEFGHIJK"; // null 포함 12 character
printf("\n");
printf(" strNum = \"%s\", strlen = %d \n", strNum, strlen(strNum));
printf(" strBuf = \"%s\", strlen = %d \n", strBuf, strlen(strBuf));
printf("\n");
snprintf(strBuf, 10, "%s", strNum);
printf(" strBuf <----snprintf(n:10)---- strNum \n");
printf("\n");
printf(" strBuf = \"%s\", strlen = %d \n", strBuf, strlen(strBuf));
printf("\n");
----------------------------- 결과 -------------------------------
strNum = "1234567890", strlen = 10
strBuf = "ABCDEFGHIJK", strlen = 11
strBuf <----snprintf(n:10)---- strNum
strBuf = "123456789", strlen = 9
------------------------------------------------------------------
예제 snprintf 2)
char *strNum = "1234567890"; // null 포함 11 character
char strBuf[12] = "ABCDEFGHIJK"; // null 포함 12 character
printf("\n");
printf(" strNum = \"%s\", strlen = %d \n", strNum, strlen(strNum));
printf(" strBuf = \"%s\", strlen = %d \n", strBuf, strlen(strBuf));
printf("\n");
snprintf(strBuf, 11, "%s", strNum);
printf(" strBuf <----snprintf(n:11)---- strNum \n");
printf("\n");
printf(" strBuf = \"%s\", strlen = %d \n", strBuf, strlen(strBuf));
printf("\n");
----------------------------- 결과 -------------------------------
strNum = "1234567890", strlen = 10
strBuf = "ABCDEFGHIJK", strlen = 11
strBuf <----snprintf(n:11)---- strNum
strBuf = "1234567890", strlen = 10
------------------------------------------------------------------