사용범위
Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수
기능
C언어 표준 함수로 문자열에서 특정 문자의 첫 번째 위치를 찾을 때 사용한다.
헤더
#include <string.h>
※ strchr 함수 사용 시 string.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※
함수
char *strchr(const char *str, int val);
파라미터
- const char *str
- 특정 문자를 검색할 문자열 버퍼를 입력한다.
- int val
- 문자열 버퍼에서 검색할 문자를 입력한다.
반환값 (return)
문자(val) 을 찾은 경우 문자열에서 val 의 첫 번째 위치의 포인터를 반환
문자(val) 을 찾지 못한 경우 NULL 을 반환
잡학지식
strchr 함수는 검색하는 string 버퍼의 size 를 입력받지 않는다.
다시 말해 strchr 내부에서 문자열의 종료를 나타내는 NULL 문자를 확인하고 있는 것이다.
따라서 입력하는 str 파라미터는 반드시 NULL 문자가 ('\0) 포함되어야 한다.
NULL 문자가 포함되어있지 않거나 확신을 할 수 없는 버퍼의 검색을 진행하는 경우 memchr 함수를 사용해야 한다.
<소스 코드>
#include <stdio.h>
#include <string.h>
int main() {
char buffer[] = "strchr example source code";
char find_chr = 'e';
char *tmp = NULL;
char *ret = NULL;
tmp = buffer;
do {
ret = strchr(tmp, find_chr);
if(ret) {
printf("ret(%p) : [%s]\n", ret, ret);
}
// next char
tmp = ret + 1;
} while(ret);
return 0;
}
(string 에서 문자 'e' 를 순차적으로 검색)
※ 실행 결과
ret(000000000061FDB7) : [example source code]
ret(000000000061FDBD) : [e source code]
ret(000000000061FDC4) : [e code]
ret(000000000061FDC9) : [e]
반응형
'C언어 > string.h' 카테고리의 다른 글
[C언어] memset 함수 (메모리 셋팅 함수) (0) | 2023.02.05 |
---|---|
[C언어] memchr 함수 (버퍼에서 문자 검색) (0) | 2022.12.22 |
[C언어] memcmp 함수 (메모리 비교 함수) (0) | 2022.11.11 |
[C언어] strncpy 함수 (문자열 복사) (1) | 2022.10.03 |
[C언어] strtok 함수 (문자열 자르기) (2) | 2022.09.20 |