문자열에 특정 부분 문자열 찾는 함수(strstr)외 문자열 제어함수 9가지
strstr
strstr 함수는 문자열에서 특정 부분 문자열(substring)을 찾는 함수로, C 표준 라이브러리에 포함되어 있습니다. strstr 함수의 전달인자와 반환값, 그리고 사용 방법에 대해 설명하겠습니다.
strstr 함수의 전달인자:
- 대상 문자열 (const char *haystack):
- 부분 문자열을 찾을 대상이 되는 문자열입니다.
- 찾을 부분 문자열 (const char *needle):
- 대상 문자열에서 찾고자 하는 부분 문자열입니다.
strstr 함수의 반환값:
- 부분 문자열의 첫 번째 등장 위치 포인터 (const char *):
- 대상 문자열에서 찾은 부분 문자열의 첫 번째 문자에 대한 포인터를 반환합니다.
- 만약 부분 문자열을 찾지 못한 경우에는 NULL을 반환합니다.
#include <stdio.h>
#include <string.h>
int main() {
const char *haystack = "Hello, World!";
const char *needle = "World";
// 대상 문자열에서 부분 문자열 찾기
const char *result = strstr(haystack, needle);
// 결과 출력
if (result != NULL) {
printf("부분 문자열을 찾았습니다: %s\n", result);
} else {
printf("부분 문자열을 찾지 못했습니다.\n");
}
return 0;
}
이 예시에서 strstr(haystack, needle); 부분은 haystack 문자열에서 needle 부분 문자열을 찾아서 해당 부분 문자열의 첫 번째 문자에 대한 포인터를 반환합니다. 결과로 반환된 포인터는 찾은 부분 문자열의 첫 번째 문자를 가리킵니다. 만약 부분 문자열을 찾지 못하면 NULL을 반환합니다.
문자열 제어함수 10가지 정리
1. 문자열 복사 함수 (strcpy): src에서 dest로 문자열을 복사합니다.
char *strcpy(char *dest, const char *src);
2. 문자열 길이 함수 (strlen): 문자열의 길이를 반환합니다.
size_t strlen(const char *str);
3. 문자열 비교 함수 (strcmp): 두 문자열을 비교하여 같으면 0을, 다르면 양수 또는 음수를 반환합니다.
int strcmp(const char *str1, const char *str2);
4. 부분 문자열 검색 함수 (strstr): 문자열에서 부분 문자열을 검색합니다.
char *strstr(const char *haystack, const char *needle);
5. 문자열 연결 함수 (strcat): src를 dest에 이어붙입니다.
char *strcat(char *dest, const char *src);
6. 문자열 복사 함수 (strncpy): 최대 n 길이까지 문자열을 src에서 dest로 복사합니다.
char *strncpy(char *dest, const char *src, size_t n);
7. 문자열 비교 함수 (strncmp): n 길이까지 두 문자열을 비교하여 같으면 0을, 다르면 양수 또는 음수를 반환합니다.
int strncmp(const char *str1, const char *str2, size_t n);
8. 문자열 검색 함수 (strchr): 문자열에서 특정 문자 c를 찾습니다.
char *strchr(const char *str, int c);
9. 형식화된 문자열 생성 함수 (sprintf): 형식화된 문자열을 생성합니다.
int sprintf(char *str, const char *format, ...);
10. 형식화된 문자열 생성 함수 (snprintf): 형식화된 문자열을 생성하되, 최대 size 길이까지만 허용합니다.
int snprintf(char *str, size_t size, const char *format, ...);
'코딩취미 > C,C++' 카테고리의 다른 글
[MFC] ribbon.mfcribbon-ms 리소스 xml 편집 : RibbonBarEditor, Application Buttion 수정관련 (0) | 2023.12.22 |
---|---|
[C#] 멀티스레드(MTA) 환경에서 프로그램 재시작하는 방법 (0) | 2023.12.20 |
[c언어] fread, fseek, fwrite 전달인자와 사용방법 (파일 입출력) (0) | 2023.12.17 |
파일 복사 시, copy 명령어를 쓰지 않고 버퍼를 사용하는 이유 (0) | 2023.12.16 |
[c언어] sizeof 와 ftell 의 차이점, 사용 목적 (0) | 2023.12.15 |