Как уже говорили другие, строки не совпадают, так как одна - "test\0rtl"
, а другая - "test"
. Можно использовать ==
для сравнения std::string
, так как оператор перегружен для равенства строк. Чтобы сделать то, что вы хотите, вы должны попробовать заменить
if(sep != string::npos) { name[sep] = '\0'; }
с
if(sep != string::npos) { name.resize(sep); }