这个程序的专家我试图在主字符串中的所需位置添加一个子字符串。但问题是,当我编译它时,它首先要求我输入主字符串。输入主字符串后,它不会要求我输入子字符串,直接并直接要求我输入该字符串。我不明白为什么,因为从语法上来说,这对我来说似乎是正确的。请帮忙。谢谢。
#include <stdio.h>
#include <string.h>
int len1, len, n;
void add(char x[25], char y[25], int z, int r) {
int i;
for (i = 0; i < z; i++) {
if (i == r)
printf("%s", y);
printf("%c", x[i]);
}
}
void main() {
char s[25], q[25];
int i;
printf("\nEnter the main string\n");
scanf("%[^\n]", s);
len = strlen(s);
printf("\nEnter the sub-string\n");
scanf("%[^\n]", q);
printf("\nEnter the position\n");
scanf("%d", &n);
add(s, q, len, n);
}
另外,当我用gets(s)替换第一个scanf()时,我想补充一下;并保留程序的其余部分,程序运行正常。但是当我使用2个scanfs()时,它不能很好地工作。