帮我修改这串代码使其能在Visual Studio 2022上运行使用#include <stdio.h> #include <string.h> #define size 20 int BF(char S[], char T[]); char* delet(char S[], char T[], int n); int main() { int i; int j; char a[]; char S[] = "10 20 30"; char T[] = "40"; printf("新换进去的数字是"); scanf("%s", &a[]); int start = BF(S, T); if (start != 0) {printf("子串在主串中的起始位置是:%d\n", start); printf("替换子串后的结果是:%s\n", insert(S, T, start)); } else {printf("子串不在主串中\n"); } return 0;} int BF(char S[], char T[]) { int start = 0; int i = 0, j = 0; while ((S[i] != '\0') && (T[j] != '\0')) { if (S[i] == T[j]) { i++; j++; } else { start++; i = start; j = 0; } } if (T[j] == '\0') { return start; } else { return 0; }} char* delet(char S[], char T[], int n) { int lena, lenb, i, j; lena = strlen(S);//主串长度 lenb = strlen(T);//子串长度 for (i = n; i < lena - lenb; i++) { S[i] = S[i + lenb]; } S[i + lenb] = '\0'; return S;} char* insert(char S[], char T[], int n,char a[]) { int lena, lenb, i, j; int x = 0; lena = strlen(S);//主串长度 lenb = strlen(a);//新串长度 for (i = n;i < lena - lenb;i++;x++) { S[i + lenb]=S[i]; S[i] = a[0]; } return S; }
时间: 2023-06-19 19:04:25 浏览: 50
以下是修改后的代码,主要修改了函数参数和一些语法错误:
```c++
#include <stdio.h>
#include <string.h>
#define SIZE 20
int BF(char S[], char T[]);
char* delet(char S[], char T[], int n);
char* insert(char S[], char T[], int n, char a[]);
int main() {
int i;
int j;
char a[SIZE];
char S[] = "10 20 30";
char T[] = "40";
printf("新换进去的数字是");
scanf("%s", a);
int start = BF(S, T);
if (start != 0) {
printf("子串在主串中的起始位置是:%d\n", start);
printf("替换子串后的结果是:%s\n", insert(S, T, start, a));
}
else {
printf("子串不在主串中\n");
}
return 0;
}
int BF(char S[], char T[]) {
int start = 0;
int i = 0, j = 0;
while ((S[i] != '\0') && (T[j] != '\0')) {
if (S[i] == T[j]) {
i++;
j++;
}
else {
start++;
i = start;
j = 0;
}
}
if (T[j] == '\0') {
return start;
}
else {
return 0;
}
}
char* delet(char S[], char T[], int n) {
int lena, lenb, i, j;
lena = strlen(S);//主串长度
lenb = strlen(T);//子串长度
for (i = n; i < lena - lenb; i++) {
S[i] = S[i + lenb];
}
S[i + lenb] = '\0';
return S;
}
char* insert(char S[], char T[], int n, char a[]) {
int lena, lenb, i, j;
int x = 0;
lena = strlen(S);//主串长度
lenb = strlen(a);//新串长度
for (i = n; i < lena - lenb; i++, x++) {
S[i + lenb] = S[i];
S[i] = a[x];
}
return S;
}
```