C++-后缀数组输出

发布于 2016-10-24 00:27:58 字数 604 浏览 1360 评论 1

单步看正确,输出有问题

#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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瑾兮 2017-02-19 03:12:17

第12有数组越界的问题,应该是p[i][i+1]。
另外,输出的结果应该不是后缀数组,第10行,应该是srcncpy(p[i],*(sou[k-i-1]),i+1);吧。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文