帮我修改这串代码使其能在Visual Studio 2022上运行使用#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <string.h> #define SIZE 100 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[SIZE]; char T[SIZE]; printf("主串为"); scanf("%s", S); printf("要替换的数字为"); scanf("%s", T); 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+1;} 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;}
时间: 2023-06-16 21:08:37 浏览: 105
Define_Grid_Motion.zip_DEFINE_GRID_MOTION_fluent udf_fluent变形_f
5星 · 资源好评率100%
你可以尝试将以下代码复制并粘贴到 Visual Studio 2022 的新建项目中进行编译使用:
```
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#define SIZE 100
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[SIZE];
char T[SIZE];
printf("主串为");
scanf("%s", S);
printf("要替换的数字为");
scanf("%s", T);
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 + 1;
}
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;
}
```
如果仍然出现编译错误的情况,你可以在 Visual Studio 2022 中尝试使用快捷键 Ctrl + Shift + N 创建一个新的 C 语言项目,然后将代码复制并粘贴到新建的项目中进行编译执行。
阅读全文