在yolo中pdb出现了字符串“name ”,错误,于是想到去掉字符串中的最后一个字符
#include "stdio.h" #include "malloc.h" #include "string.h" int main() { char* s="GoldenGlobalView "; char * d= (char *)malloc((strlen(s)-1)*sizeof(char)); memcpy(d,s,(strlen(s)-1)); printf("%s",d); free(d); return 0; }
也可以使用strncpy(dest,src,n),不过貌似memcpy最好。
太麻烦,不过没办法。
在darknet框架src/data.c中
可以重写
char **get_labels(char *filename) { char * filename_no_r= (char *)malloc((strlen(filename)-1)*sizeof(char)); memcpy(filename_no_r,s,(strlen(filename)-1)); list *plist = get_paths(filename_no_r); free(filename_no_r); char **labels = (char **)list_to_array(plist); free_list(plist); return labels; }
不过最好的解决方案还是使用notepad更改数据格式改为unix。具体参见yolo栏目。