c/c++语言开发共享在C中为char数组赋一个char指针

我开始研究C,我已经遇到了一些问题。 我想解析一个文件并将每行的结果存储在一个结构中。 我的结构看起来像:

struct record { char x[100]; } 

然后,每当我使用strtok解析某些file.txt中的一行时,

 struct record R; ... char *token; token = strtok(line, "t"); 

token返回一个指向字符串的指针,每当我打印它时,它都是正确的字符串。 我想将标记分配给x,例如Rx = token ,但是我收到错误,“char x [100]不可分配”。 是否可以将此指针标记转换为实际的char数组,或者将结果存储到结构中的最佳方法是什么?

    错误说明了一切。 数组不可分配 。 您需要逐个复制每个字符,然后在末尾附加NUL终止符。

    幸运的是,有一个function可以为您完成此操作。 函数的名称是strcpy ,可以在string.h头文件中找到。

    要解决您的问题,请使用

     strcpy(Rx,token); 

    代替

     Rx = token; 

    确保字符串适合数组后使用strcpy

     #define LEN(array) (sizeof (array) / sizeof (array)[0]) if (strlen(token) < LEN(Rx)) { strcpy(Rx, token); } else { fprintf(stderr, "error: input string "%s" is longer than maximum %dn", token, LEN(Rx) - 1); } 

    strcpy在遇到NULL时停止, memcpy不会。 所以,如果你的数组有0x00例如。 在中间,你应该使用memcpy而不是strcpy

      以上就是c/c++开发分享在C中为char数组赋一个char指针相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/522927.html

      (0)
      上一篇 2020年12月11日
      下一篇 2020年12月11日

      精彩推荐