C语言拆分字符串名称与扩展名

对于字符串切分用到了函数:strrchr(const char *str, char c)

功能是查找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回这个位置的地址。如果未能找到指定字符,那么函数将返回NULL。使用这个地址返回从最后一个字符c到str末尾的字符串。


void get_label_filename(const char* image_filename, char* label_filename) {
  // std::vector vecSegName;
  // boost::split(vecSegName, std::string(image_filename), boost::is_any_of('.'));
  int in = 0;
  char cFile[256] = {0};
  strcpy(cFile, image_filename);
  char* put;
  // concatenate label_filename
  put = strrchr(cFile, '.');
  char ext[3];
  memcpy(label_filename, cFile, strlen(cFile)-strlen(put));
  memcpy(ext, put + 1, strlen(put) -1);
    free(put);
  put = NULL;
}


你可能感兴趣的:(C语言拆分字符串名称与扩展名)