问题相关代码,请勿粘贴截图
#include"stdio.h"
#define MAXLEN 255
typedef struct
{
char ch[MAXLEN];
int length;
}SString;
int StrLength(SString S)
{
int m;
for (m = 0; S.ch[m] != '\0'; m++);
S.length = m;
return S.length;
}
void StrCopy(SString* T, SString S)
{
int i;
for (i = 0; i < StrLength(S); i++)
T->ch[i] = S.ch[i];
T->ch[i] = '\0';
T->length = S.length;
}
void StrReplace(SString* S, SString T, SString V)
{
SString temp;
int i, j, flag, k = 0;
if (StrLength(*S) >= StrLength(T))
{
for (i = 0; i < StrLength(*S);)
{
if (i < StrLength(*S) - StrLength(T))
{
flag = 1;
for (j = 0; j < StrLength(T); j++)
if (S->ch[i + j] != T.ch[j])
{
flag = 0;
break;
}
}
else flag = 0;
if (flag == 1)
{
for (j = 0; j < StrLength(V); j++, k++)
temp.ch[k] = V.ch[j];
i = i + StrLength(T);
}
else
{
temp.ch[k] = S->ch[i];
k++;
i++;
}
}
}
StrCopy(S, temp);
for (i = 0; i < k; i++)
printf("%c", S->ch[i]);
printf("\n");
}
void main()
{
SString S, T, V;
printf("输入主串:");
scanf_s("%s", &S,MAXLEN);
printf("输入要查找的字符串:");
scanf_s("%s", &T,MAXLEN);
printf("输入要替换的字符串:");
scanf_s("%s", &V,MAXLEN);
printf("新字符串为:");
StrReplace(&S, T, V);
}
运行结果及报错内容
