[C 언어] 특정 문자열을 찾아서 다른 것으로 바꾸는 strstr() 함수
글. 오상문 sualchi@daum.net
#include <stdio.h>
#include <string.h>
// strstr 함수를 구현한 StrStr 함수 소스
// StrStr 출처: http://www.jbox.dk/sanos/source/lib/string.c.html
char *StrStr(const char *str1, const char *str2)
{
char *cp = (char *)str1;
char *s1, *s2;
if (!*str2) // NULL 종료면 끝냄
return (char *) str1;
while (*cp) { // str1에 남은 문자가 존재할 때까지 반복
s1 = cp;
s2 = (char *) str2;
// 양쪽에 같은 문자가 존재하면 다음 문자를 비교
while (*s1 && *s2 && !(*s1 - *s2))
s1++, s2++;
// s2 문자가 끝났으면
if (!*s2)
return cp;
cp++;
}
return NULL;
}
// 특정 문자열을 찾아서 다른 문자열로 바꾸는 예
int main(int argc, char *argv[])
{
char str[] ="This is a simple string";
char * pos;
// StrStr() 대신에 C 표준 함수 strstr() 사용해도 같은 결과 나옴
pos = StrStr(str, "simple"); // simple이 존재하는 위치를 찾음
if(pos) {
strncpy (pos, "sample", 6); // sample로 변경함
puts (str);
} else
puts("None!");
return 0;
}
<이상>
'C' 카테고리의 다른 글
C 언어, 순열 자료 출력하기 (0) | 2018.06.16 |
---|---|
C 언어, 소수 구하기 (0) | 2018.06.12 |
열 개 숫자 중에서 3개의 합이 가장 큰 값을 출력하는 C 예제 (0) | 2018.05.17 |
scanf() 함수를 사용하면 보안 경고가 발생할 때 (0) | 2018.02.12 |
getchar(), getch() 문자 입력 함수 비교 예제 (0) | 2018.01.31 |