我有一个代表文件名的字符串,我想删除扩展名,因此删除“。”之后的所有内容。什么是最好的方式?感谢。
答案 0 :(得分:2)
下面的代码可以用于相同的..
int npos = str.find_last_of('.');
str = str.substring(0,npos);
答案 1 :(得分:1)
如果您使用的是Windows,则以下功能可以解决问题:
std::wstring StripFileExtension(std::wstring fileName)
{
WCHAR tempBuffer[MAX_PATH];
if (fileName.empty())
{
return TEXT("");
}
wcscpy(tempBuffer, fileName.c_str());
PathRemoveExtension(tempBuffer);
return tempBuffer;
}
答案 2 :(得分:0)
您可以使用std :: string,并将每个字符复制到新字符串
std::string name = "filename.jpg", newname ="";
int thelength = 0;
for(int i=name.length();i>0;i--){
if( name[i] != '.'){
thelength++;
}
else{
break;
}
}
for(int i=0;i<(name.length()-thelength);i++){
newname+=name[i];
}