У меня есть строка, которая представляет имя файла, и я хочу удалить расширение, поэтому стираю все после «.». Что будет лучшим способом? Благодарю.
Ниже код может быть использован для того же ..
int npos = str.find_last_of('.');
str = str.substring(0,npos);
Если вы работаете в 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;
}
Вы можете использовать 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];
}