C++-后缀数组输出
单步看正确,输出有问题
#include<iostream>
using namespace std;
void next(char **p,char *sou)
{
int k=strlen(sou);
for(int i=0;i<k;i++)
{
p[i]=(char *)new char[i+2];
strncpy(p[i],sou,i+1);
//*p[i]++='';
p[i][i+2]='';
}
}
void print(char **p,int k)
{
for(int i=0;i<k;i++)
cout<<p[i];
}
int main()
{
char *p="fsdgfdhf";
char **p1;
int k=strlen(p);
p1=(char **)new char[strlen(p)];
next(p1,p);
print(p1,k);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
第12有数组越界的问题,应该是p[i][i+1]。
另外,输出的结果应该不是后缀数组,第10行,应该是srcncpy(p[i],*(sou[k-i-1]),i+1);吧。