strtok()有问题-它没有按预期返回输入。

void parse_input(const char *input,unsigned char *ctext, int mlen){
  char * str = strdup(input);
  char * pch = strtok(str,"-");

  while (pch != NULL)
  {

    ctext[mlen] = (int) pch;


    pch = strtok (NULL, "-");

    mlen++;

  }

对于1-2-3-4这样的输入,我希望它用[1,2,3,4]填充ctext。
不过,这不管用。
我做错什么了?感谢任何帮助。

最佳答案

ctext[mlen] = (int) pch;

它存储指针的数值,而您确实希望指针指向的字符。是时候读一篇关于指针的好文章/书/教程了。
ctext[mlen] = *pch;

就是你要找的。

关于c - 我该如何解决这个strtok()调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16224403/

10-11 21:57