<string.h>에 있는 문자열 관련 함수를 정리한다.
레퍼런스는 man 가이드다.
strchr와 strrchr 비교
RETURN 항목에서 말하는 'character'는 byte를 의미한다.
PROTOTYPE | #include <string.h> char *strchr(const char *s, int c); |
#include <string.h> char *strrchr(const char *s, int c); |
NAME | locate character in string |
|
DESCRIPTION | - The strchr() function locates the first occurrence of c (converted to a char) in the string pointed to by s. - The terminating null character is considered to be part of the string; therefore if c is `\0', the functions locate the terminating `\0'. |
- The strrchr() function is identical to strchr(), except it locates the last occurrence of c. |
RETURN |
- a pointer to the first occurrence of the character c in the string s | - a pointer to the last occurrence of the character c in the string s |
- NULL if the character does not appear in the string. - a pointer to the terminator : The terminating null byte is considered part of the string, so that if c is specified as '\0', these functions return a pointer to the terminator. |
strstr과 strnstr 비교
PROTOTYPE | #include <string.h> char *strstr (const char *haystack, const char *needle); |
#include <string.h> char *strnstr (const char *haystack, const char *needle, size_t len); |
NAME | locate a substring in a string |
|
DESCRIPTION | - The strstr() function locates the first occurrence of the null-terminated string needle in the null-terminated string haystack. | - The strnstr() function locates the first occurrence of the null-terminated string needle in the string haystack, where not more than len characters are searched. - Characters that appear after a `\0' character are not searched. |
RETURN |
- a pointer to the first character of the first occurrence of needle - haystack : if needle is an empty string - NULL : if needle occurs nowhere in haystac |
함수 프로토타입의 매개변수는 haystack과 needle인데 '건초더미에서 바늘찾기' 문구에서 따온 듯하다.
strcmp와 strncmp 비교
문자열을 비교하는 함수다.
s1이 s2보다 작거나, 일치하거나, s2보다 큰 경우, 0보다 작거나, 같거나, 0보다 큰 정수를 반환한다.
'\200' 문자는 ASCII Code 128(decimal)에 해당하는 문자다.
PROTOTYPE | #include <string.h> int strcmp(const char *s1, const char *s2); |
#include <string.h> int strncmp(const char *s1, const char *s2, size_t n); |
NAME | compare two strings | |
DESCRIPTION |
- The strcmp() and strncmp() functions lexicographically compare the null-terminated strings s1 and s2. - Comparison is done in format of 'unsigned characters', so `\200' is greater than `\0'. |
|
- The strncmp() function compares not more than n characters. - Characters that appear after a `\0' character are not compared, because strncmp() is designed for comparing strings rather than binary data. |
||
RETURN |
an integer less than, equal to, or greater than zero (the difference between the first two differing bytes) : if s1 is found, respectively, to be less than, to match, or be greater than s2. |
'Code > C' 카테고리의 다른 글
c언어 정적변수, 지역변수, 전역변수 비교 (static, local, global) (3) | 2020.12.25 |
---|---|
[C언어] 내장함수 비교 - memcpy, memccpy / memmove / memchr / memcmp (0) | 2020.10.08 |
[C언어] 데이터 타입 비교 - int, unsigned int, size_t (0) | 2020.10.07 |
[C언어] 내장함수 비교 - strdup, malloc, calloc, free (2) | 2020.10.07 |
[C언어] NULL, 0, NUL, '\0', undefined의 차이 (0) | 2020.10.06 |
댓글