반응형
<strchr>
1. 라이브러리 : <string.h>
2. 함수 원형
// 검색할 문자열, 존재하는지 확인할 문자(아스키 값)
const char* strchr(const char* str, int c);
char strchr(char* str, int c);
3. 함수 설명
- 문자열 내에서 해당 문자가 있는지 검색해주는 함수
- 첫번째 문자열 내에 두번째 문자가 존재하는지 검사
- 존재하면 존재하는 곳의 포인터 반환, 존재하지 않으면 널 포인터 반환
4. 예시
1) 특정 문자 찾기
// string 이용 -> 주소값 사용
string str = "aAbBcCdD";
char* ptr = strchr(&str[0], 'C'); // 알파벳 C를 찾음
if(ptr != nullptr)
{
cout << *ptr << endl;
}
else
{
cout << "2" << endl;
}
// char 배열 사용 -> 이름이 주소를 나타냄 str2 = &str2[0]
char str2[] = "aAbBcCdD";
char* ptr2 = strchr(str2, 'C'); // 알파벳 C를 찾음
if(ptr2 != nullptr)
{
cout << *ptr2 << endl;
}
else
{
cout << "2" << endl;
}
2) 특정 문자 찾기 2
const char* ptr = strchr("abcdefg", 'e');
if(ptr != nullptr)
{
cout << *ptr << " : " << ptr << endl; // 출력 e : efg
}
3) 특정 문자 모두 찾기
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
char str[] = "ohohhohhoh"
char* ptr = strchr(str, 'h');
int num = 0;
while(ptr != nullptr)
{
num++;
cout << num << " : " << *ptr << " : " << ptr;
ptr = strchr(ptr + 1, 'h'); // ptr + 1 번째 주소 이후로 'h'가 나오는 주소를 찾음
}
// 출력 값
// 1 : h : hohhohhoh
// 2 : h : hhohhoh
// 3 : h : hohhoh
// 4 : h : hhoh
// 5 : h : hoh
// 6 : h : h
return 0;
}