分享

c语言-字符串去掉最后一个字符

 XeonGate 2019-11-05

https://blog.csdn.net/andeyeluguo/article/details/81086260

在yolo中pdb出现了字符串“name\r”,错误,于是想到去掉字符串中的最后一个字符

  1. #include "stdio.h"
  2. #include "malloc.h"
  3. #include "string.h"
  4. int main()
  5. {
  6. char* s="GoldenGlobalView\r";
  7. char * d= (char *)malloc((strlen(s)-1)*sizeof(char));
  8. memcpy(d,s,(strlen(s)-1));
  9. printf("%s",d);
  10. free(d);
  11. return 0;
  12. }

也可以使用strncpy(dest,src,n),不过貌似memcpy最好。

太麻烦,不过没办法。

在darknet框架src/data.c中

可以重写

  1. char **get_labels(char *filename)
  2. {
  3. char * filename_no_r= (char *)malloc((strlen(filename)-1)*sizeof(char));
  4. memcpy(filename_no_r,s,(strlen(filename)-1));
  5. list *plist = get_paths(filename_no_r);
  6. free(filename_no_r);
  7. char **labels = (char **)list_to_array(plist);
  8. free_list(plist);
  9. return labels;
  10. }

不过最好的解决方案还是使用notepad更改数据格式改为unix。具体参见yolo栏目。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多