LonGnaw 2017-10-15 03:31 采纳率: 0%
浏览 986

关于c语言中串的算法Replac(&S,T,V)的实现

#include
#define MAXSIZE 100
typedef char ElemType;

typedef struct
{
ElemType *ch;
int length;
}HString;

void print(HString a);
void scan(HString v);
void Replace(HString S,HString S1,HString S2);

void main()
{
HString a,b,c;
printf("\nS=");
scan(a);
printf("\nS1=");
scan(b);
printf("\nS2=");
scan(c);
Replace(a,b,c);
print(a);

}

void scan(HString v)
{
int i=1;
ElemType c;
v.ch=new ElemType[MAXSIZE];
v.length=0;
c=getchar();
if(c!='$')
{
v.ch[i]=c;
i++;
v.length++;
}
}

void print(HString a)
{
int i;
printf("最后结果为:");
for(i=1;i<a.length;i++)
{
printf("%c",a.ch[i]);
}
}

void Replace(HString S,HString S1,HString S2)
{
int i,j,k;
for(i=1,j=1;i<S.length;i++)
{
while(S.ch[j]==S1.ch[i]&&j<S1.length)
{
i++;
j++;
}
if(j==S1.length)
{
for(k=1;k<S1.length;k++)
{
S.ch[i]=S2.ch[k];
i++;
}
}
}
}
求指点哪里有错误,以及更正方法,新手经常踩雷。。

调试结果如下:
--------------------Configuration: 自测题串 - Win32 Debug--------------------
Compiling...
自测题串.c
D:\c语言\自测题串.c(34) : error C2065: 'new' : undeclared identifier
D:\c语言\自测题串.c(34) : warning C4047: '=' : 'char *' differs in levels of indirection from 'int '
D:\c语言\自测题串.c(34) : error C2146: syntax error : missing ';' before identifier 'ElemType'
D:\c语言\自测题串.c(34) : error C2275: 'ElemType' : illegal use of this type as an expression
D:\c语言\自测题串.c(3) : see declaration of 'ElemType'
Error executing cl.exe.

自测题串.obj - 3 error(s), 1 warning(s)

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-10-15 05:43
    关注

    v.ch=new ElemType[MAXSIZE];
    这是c++的语法,而你的编译的后缀c(是自测题串.c)是c语言。

    评论

报告相同问题?

悬赏问题

  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择
  • ¥15 这款软件是什么?需要能满足我的需求
  • ¥15 SpringSecurityOauth2登陆前后request不一致