substr 字符串截断

最后更新于 2022-11-17 367 次阅读


s.substr(pos, len)

  • 返回值: string,包含s中从pos开始的len个字符的拷贝(pos的默认值是0,len的默认值是s.size() - pos,即不加参数会默认拷贝整个s)
  • 异常 :若pos的值超过了string的大小,则substr函数会抛出一个out_of_range异常;若pos+n的值超过了string的大小,则substr会调整n的值,只拷贝到string的末尾

获取文件名后缀(判断文件格式)

string Analyser::getFileSuffix(const string& fileName)
{
	return fileName.substr(fileName.find_last_of('.') + 1);
}

判断文件格式是否合法

bool GradeManager::fileNmaeisAvaliable(const string &fileName)
{
	// 文件名中不能包含\/:*?"<>|这些字符
	regex regExpress("[\\/:*?\"<>|]");
	bool pointValid = !std::regex_search(fileName, regExpress);

	string suffixx = aser->getFileSuffix(fileName);
	bool suffixValid = availableFileType->find(suffixx);

	return pointValid && suffixValid;
}