문자 검색 : char *ptr = strchr(대상문자열, 검색할 문자);
오른쪽부터 문자 검색 : char *ptr = strrchar(대상문자열, 검색할문자);
문자열 검색 : char *ptr = strstr(대상문자열, 검색할문자열);
※문자를 검색할 때는 ' '/ 단어(문자열)를 검색할 때는 " "
44.1 문자열 안에서 문자로 검색하기
strchr 함수를 사용하면 문자열에서 특정 문자로 검색할 수 있음. 함수이름은 string character 에서 따옴.(string.h 헤더 파일에 선언되어 있음)
strchr(대상문자열, 검색할 문자);
-문자를 찾았으면 문자로 시작하는 문자열 포인터를 반환, 문자가 없으면 NULL을 반환
-대소문자 구분함
#include <stdio.h>
#include <string.h>
int main()
{
char s1[30] = "A Garden Diary";
char* ptr = strchr(s1, 'a'); //'a'로 시작하는 문자열 검색, 포인터 반환
while (ptr != NULL)
{
printf("%s\n", ptr); // 검색된 문자열 출력
ptr = strchr(ptr + 1, 'a'); //포인터에 1을 더하여 a 다음부터 검색
}
return 0;
}
arden Diary
ary
44.2 문자열의 오른쪽 끝부터 문자로 검색하기
strrchr 함수는 문자열의 끝에서부터 문자를 검색함. 오른쪽에서부터 문자를 찾아라(string(find from the right)character)에서 따옴.(string.h 헤더 파일에 선언되어 있음)
strrchar(대상문자열, 검색할문자);
-대소문자 구분함
#include <stdio.h>
#include <string.h>
int main()
{
char s1[30] = "A Garden Diary";
char* ptr = strrchr(s1, 'a'); //문자열 끝에서부터 'a'로 시작하는 문자열 검색.포인터 반환
printf("%s\n", ptr); //ary
return 0;
}
44.3 문자열 안에서 문자열로 검색하기
strstr함수는 문자열 안에서 문자열을 검색함. string(find)string에서 따옴. (string.h) 헤더 파일에 선언되어 있음.
strstr(대상문자열, 검색할문자열);
-대소문자 구분
실제 검색할 때 문자(strchr)보다 단어(strstr)로 검색하는 경우가 많기 때문에 프로그램을 만들때도 문자열 찾기 함수를 더 자주 씀.
#include <stdio.h>
#include <string.h>
int main()
{
char s1[30] = "A Garden Diary";
char* ptr = strstr(s1, "den"); //den으로 시작하는 문자열 검색, 포인터 반환
printf("%s\n", ptr); //den Diary
return 0;
}
while 반복문을 사용하여 문자열을 계속 검색할 수 있음.
#include <stdio.h>
#include <string.h>
int main()
{
char s1[100] = "A Garden Diary A Garden Diary A Garden Diary";
char* ptr = strstr(s1, "den"); //den으로 시작하는 문자열 검색, 포인터 반환
while (ptr != NULL)
{
printf("%s\n", ptr);
ptr = strstr(ptr + 1, "den");
}
return 0;
}
den Diary A Garden Diary A Garden Diary
den Diary A Garden Diary
den Diary
'C > C언어 코딩도장' 카테고리의 다른 글
UNIT 46 문자열과 숫자를 서로 변환하기 (0) | 2022.02.27 |
---|---|
UNIT45 문자열 자르기 (0) | 2022.02.27 |
UNIT 43 문자열 만들기 (0) | 2022.02.26 |
UNIT 42 문자열 복사하고 붙이기 (0) | 2022.02.25 |
UNIT 41 문자열의 길이 구하고 비교하기 (0) | 2022.02.25 |