【发布时间】:2009-07-22 18:23:47
【问题描述】:
我编写了一个程序,在主函数中我声明了一个指针数组,然后我调用一个函数来拆分给定的句子,然后将其分配给main() 中的指针数组。我做不到。请检查下面粘贴的代码:
int main(void)
{
char *data[3];
allocate(data);
/* Unable to print the strings here */
printf("Main is %s\n", data[0] );
printf(""
}
void allocate(char **dt)
{
int i;
char buf[] = "The great Scorpion";
char delims[] = " ";
size_t len;
char *p;
char *result = NULL;
result = strtok(buf," ");
*dt = result;
int j = 1;
while(result!=NULL)
{
result = strtok( NULL, delims );
dt[j]=result;
j++;
}
/* able to print values here */
printf( "result is %s\n", dt[0]);
printf( "result is %s\n", dt[1] );
printf( "result is %s\n", dt[2] );
}
谁能帮帮我?
【问题讨论】:
-
我想我认为 strtok 函数可能有问题。如果我直接在 allocate 函数中给出字符串,我可以得到这些值反映在 main 函数中。
-
列出的代码有什么问题?您想要回答的实际问题是什么?
-
我希望在 allocate 函数中分配的字符串反映在 main 函数中。
-
代码块的最后一行是“谁能帮帮我??”。您应该删除它,使其不是代码的一部分。
-
main() 中 printf("" 的末尾缺少一个 )。