看不出来错哪了答案都能对的上
查看原帖
看不出来错哪了答案都能对的上
1217917
AAAABCDDD楼主2024/5/20 12:57
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
	int n;
	scanf("%d", &n);
	char arr[100];
	getchar();
	gets(arr);
	for(int i = 1; i <= n; ++i) {
		int select;
		scanf("%d", &select);
		switch(select) {
			case 1: {
				char arr1[100];
				getchar();
				
				gets(arr1);
				strcat(arr, arr1);
				printf("%s\n", arr);	
				break;
			}
			case 2: {
				int ind, cnt;
				scanf("%d%d", &ind, &cnt);
				char arr2[100];
				strcpy(arr2, arr);
				memset(arr, 0, sizeof(arr));
				for(int j = ind; j < ind + cnt; ++j) {
					arr[j - ind] = arr2[j];
				}
				printf("%s\n", arr);
				break;
			}
			case 3: {
				int cnt;
				scanf("%d", &cnt);
				char arr3[100];
				getchar();
				
				gets(arr3);
				char arr1[100];
			
				char arr2[100];
				memset(arr2, 0, sizeof(arr2));
				for(int i = 0; i < strlen(arr) - cnt; ++i) {
					arr2[i] = arr[cnt + i];
				}
				strncpy(arr1, arr, cnt);				
				strcat(arr1, arr3);				
				strcat(arr1, arr2);
				strcpy(arr, arr1);
				printf("%s\n", arr);
				break;
			}
			case 4: {
				char arr1[100];
				getchar();
				gets(arr1);
				int ind = 0, j = 0, i = 0;
				for (i = 0; i < strlen(arr); ++i) {
					if(arr[i] == arr1[0]) {
						ind = i;
						for(j = 1; j < strlen(arr1); ++j) {
							if(arr[j + i] != arr1[j]) {
								break;
							}
						}
						if(j >= strlen(arr1)) {
							printf("%d\n", ind);
							break;
						}
					}
				}
				if(i >= strlen(arr)) {
					printf("%d\n", -1);
				}
				break;
			}
		}
	}
	return 0;
}
2024/5/20 12:57
加载中...