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가 문장의 중간이나 뒤에 위치하는 경우도 있었으면 반환된 포인터의 값도 신경써야 했을 것이다.