반응형
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;
}
출력
원본 문자열: 안녕하세요. 오늘은 평일입니다.
안녕하세요. 오늘은 휴일입니다.
안녕하세요. 언제나 휴일입니다.
사용한 함수
[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - strlen
[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - strncmp
[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - memcpy반응형
'언어 자료구조 알고리즘 > C11 표준 라이브러리 함수' 카테고리의 다른 글
memmove 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
---|---|
memcpy 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
strerr 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
strtok_s 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
strtok 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
strrchr 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
strchr 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
strncat_s 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
strncat 함수 [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |
strcat_s [C언어 표준 라이브러리 함수 가이드] (0) | 2016.01.03 |