在下面的代码中,我想把'pre'中的字符串复制到数组'word'中,以便我可以稍后打印数组'word',但它显示NONPORTABLE CONVERSION错误..尝试使用strcpy()来做它但是它工作。这样做的任何其他方式??我想在每次生成时将'pre'中存在的字符串存储到数组中。
void print(char *pre,struct dic * root,int depth)
{
int i=0,flag=0,int j=0;
char *word;
for(;i<27;i++)
{
if(root->node[i])
{
pre[depth]='a'+i;
flag=1;
print(pre,root->node[i],depth+1);
pre[depth]=0;
}
}
if(flag == 0)
{
pre[depth]=0;
printf("\n%s\n",pre);
//j is declared globally
***word[j]=pre;***
//printf("\nWord[%d]=%s\n",j,word[j]);
}
}
谢谢..
答案 0 :(得分:1)
如果你想让word成为一个字符串数组,那么它应该被声明为:
char **word; //and allocated accordingly
如果你想让单词成为pre的副本,你应该有更像
的东西 word[j] = pre[j]; // in a loop, but using strcpy or strncpy would be just as good...
答案 1 :(得分:0)
如果我理解正确的问题......
您的NONPORTABLE CONVERSION错误是因为
word[j]=pre;
正在尝试将char*
分配给char
。
你没有说出你的strcpy()
没有用的东西,但是我假设你已经为char *word
分配了任何内存,并且正在尝试复制到NULL。取而代之的是,
word=(char*)malloc(strlen(pre)+1);
if (word) strcpy(word,pre);