strstr 함수

strstr 함수 동영상 강의

char * strstr ( const char * str1, const char * str2 ); 문자열에서 부분 문자열의 위치를 찾는 함수

입력 매개 변수 리스트

str1 문자열

str2 찾고자 하는 문자열

반환 값

str1에서 처음으로 부분 문자열로 str2 문자열이 있는 위치, 없으면 NULL

사용 예

//C언어 표준 라이브러리 함수 가이드
//char * strstr ( const char * str1, const char * str2 ); 문자열에서 부분 문자열의 위치를 찾는 함수
//부분 문자열이 있는 위치를 탐색하여 다른 문자열로 변경하여 출력
#include <stdio.h>
#include <string.h>

char *ehstrstr(const char *str1, const char *str2)
{
    int len = strlen(str2);//str2 문자열 길이 계산
    while (*str1)//*str1 이 참인 문자일 때 반복
    {
        if (strncmp(str1, str2,len) == 0)//부분 문자열이 같으면
        {
            break;//반복문 탈출(*str1이 참)
        }
        str1++;//다음 위치로 이동
    }
    if (*str1)//*str1이 참일 때
    {
        return (char *)str1;//찾은 위치 반환
    }
    return NULL;
}

int main ()
{
    char str[100] ="안녕하세요. 오늘은 평일입니다.";
    char *pos;
    printf("원본 문자열: %s\n", str);
    pos = strstr (str,"평일");//"평일"이 있는 위치를 탐색
    memcpy(pos,"휴일",strlen("휴일"));//찾은 위치의 내용을 "휴일"로 변경
    puts (str);

    pos = ehstrstr(str, "오늘은");//"오늘은"이 있는 위치를 탐색
    memcpy(pos, "언제나", strlen("언제나"));//찾은 위치의  내용을 "언제나"로 변경
    puts(str);
    return 0;
}

출력

원본 문자열: 안녕하세요. 오늘은 평일입니다.
안녕하세요. 오늘은 휴일입니다.
안녕하세요. 언제나 휴일입니다.