strstr은 처음 써봐서 작성함.
문제는 간단하다. Simon says 게임대로 앞에 'Simon says'가 나온 문자열의 뒷부분을 출력하는 것이다.
<코드>
#include <stdio.h>
#include <string.h>
#define _CRT_SECURE_NO_WARNINGS
int main() {
int n;
scanf("%d", &n);
getchar();
for (int i = 0; i < n; i++) {
char arr[101] = {};
scanf("%[^\n]s", &arr);
getchar();
int len = strlen(arr);
if (strstr(arr, "Simon says") != NULL) {
for (int j = 11; j < len; j++) {
printf("%c", arr[j]);
}
printf("\n");
}
}
return 0;
}
strstr(문자열1, 문자열2)
문자열1에서 문자열2를 찾고 싶을 때 사용하면 된다. 만약 문자열2가 있다면, 문자열2가 있는 첫번째 문자에 대한 포인터를 반환한다. 문자열2가 없다면 NULL을 반환한다.
문자열에서 문자를 찾을 때는 strchr를 사용한다. str(문자열, 문자)
위 문제의 경우 입력으로 들어오는 문장에 Simon says가 앞에 있거나, 없거나 둘 중 하나이다.
만약 Simon says가 문장의 중간이나 뒤에 위치하는 경우도 있었으면 반환된 포인터의 값도 신경써야 했을 것이다.
'TIL > 백준' 카테고리의 다른 글
10820 - 문자열 분석 : EOF 입력 (0) | 2024.11.25 |
---|---|
30501 - 문자열 복사해서 대입하기(strcpy) (0) | 2024.11.22 |
4740 : 거울, 오! 거울 - 문자열끼리 비교하기(strcmp) (0) | 2024.11.17 |
백준_4375 : 1 - 모듈러 산술 (1) | 2024.09.06 |
1292 : 쉽게 푸는 문제 - 이제 쉽네. 수열 더하기 (0) | 2024.08.28 |