上面的函数没有用到getchar
时间: 2023-10-18 10:30:53 浏览: 54
scanf(), getchar(), 以及gets()函数注意点
是的,你说得对,这个问题也可以通过在`scanf_s`函数前加上一个空格来解决,这样就可以将之前输入的回车符读取掉。修改后的代码如下所示:
```c
#include <stdio.h>
#include <string.h>
int main() {
char a[1005], b[1005];
int i, q, count = 0;
scanf_s(" %d", &q);
for (i = 0; i < q; i++) {
int num;
scanf_s("%d", &num);
if (num == 1) {
fgets(b, 101, stdin);
strcat_s(a, 101, b);
printf("%s\n", a);
}
if (num == 2) {
int x, y;
scanf_s("%d %d", &x, &y);
a[x + y] = '\0';
strcpy_s(b, 101, &a[x]);
strcpy_s(a, 101, b);
printf("%s\n", a);
}
if (num == 3) {
int x;
scanf_s("%d", &x);
fgets(b, 101, stdin);
strcat_s(b, 101, &a[x]);
a[x] = '\0';
strcat_s(a, 101, b);
printf("%s\n", a);
}
if (num == 4) {
fgets(b, 101, stdin);
char* ans = strstr(a, b);
printf("%d\n", ans != NULL ? (int)(ans - a) : -1);
}
}
return 0;
}
```
感谢您的指正,对您造成的困扰深感抱歉。
阅读全文