본문 바로가기
코딩취미/C,C++

[c언어] 문자열에 특정 부분 문자열 찾는 함수(strstr)외 문자열 제어함수 9가지

by 브링블링 2023. 12. 18.
728x90

문자열에 특정 부분 문자열 찾는 함수(strstr)외 문자열 제어함수 9가지

strstr

strstr 함수는 문자열에서 특정 부분 문자열(substring)을 찾는 함수로, C 표준 라이브러리에 포함되어 있습니다. strstr 함수의 전달인자와 반환값, 그리고 사용 방법에 대해 설명하겠습니다.

 

strstr 함수의 전달인자:

  1. 대상 문자열 (const char *haystack):
    • 부분 문자열을 찾을 대상이 되는 문자열입니다.
  2. 찾을 부분 문자열 (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을 반환합니다.

728x90

문자열 제어함수 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): srcdest에 이어붙입니다.

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, ...);
728x90