C언어의 문자열 관련 함수는 무엇이 있는지 몽땅 알아보자.
C99 표준 문자열 함수는 아래와 같다.
음영 처리된 부분은 사용 빈도가 낮은 함수이다. 백색 부분의 함수만 만들어 보자.
char* str= “abc”; // (1)
char* str2= “xyz”; // (2)
strcpy(str1, str2); // (3)
No. | 구분 | 표준 문자열 함수 | ||||
---|---|---|---|---|---|---|
return type | func name | parameters list | ||||
1 | 문자열 길이 함수 | size_t | strlen | (const char* str); | ||
2 | 문자열 복사 함수 | char* | strcpy | (char* dest, const char *src); | ||
3 | char* | strpcpy | (char* dest, const char *src); | |||
4 | char* | strncpy | (char* dest, const char *src, size_t max_len); | |||
5 | 문자열 연결 함수 | char* | strcat | (char* dest, const char* src); | ||
6 | char* | strncat | (char* dest, const char* src, size_t max_len); | |||
7 | 문자열 비교 함수 | char* | strcmp | (const char* s1, const char* s2); | ||
8 | char* | stricmp | (const char* s1, const char* s2); | |||
9 | char* | strncmp | (const char* s1, const char* s2, size_t max_len); | |||
10 | char* | strnicmp | (const char* s1, const char* s2, size_t max_len); | |||
11 | 문자열 탐색 함수 | char* | strchr | (const char* s, int c); | ||
12 | char* | strrchr | (const char* s, int c); | |||
13 | char* | strstr | (const char* s1, const char* s2); | |||
14 | char* | strpbrk | (const char* s1, const char* s2); | |||
15 | 문자열 변경 함수 | char* | strset | (char* s, int c); | ||
16 | char* | strnset | (char* s, int c, isze_t n) | |||
17 | char* | strlwr | (char* s); | |||
18 | char* | strupr | (char* s); | |||
19 | char* | strev | (char* s); | |||
20 | 수치 → 문자열 | |||||
변환함수 | char* | itoa | (int value, char* str, int radix); | |||
21 | char* | ltoa | (long value, char* str, int radix); | |||
22 | char* | utoa | (unsigned long value, char* str, int radix); | |||
23 | char* | ecvt | (double value, int ndig, int *dec, int *sign); | |||
24 | char* | fcvt | (double value, int ndig, int *dec, int *sign); | |||
25 | char* | gcvt | (double value, int ndec, char* buf); | |||
26 | 문자열 →수치 | |||||
변환함수 | int | atoi | (const char* s); | |||
27 | long | atol | (const char* s); | |||
28 | long | strtol | (const char* s, char **endptr, intradix); | |||
29 | unsigned long | strtoul | (const char *s, char **endptr, int radix); | |||
30 | double | atof | (const char *s); | |||
31 | double | strtod | (const char *s, char **endptr); |