想要从一个路径加文件名的字符串里解析出文件名,可以利用c++标准库的string::find_last_of()函数:
//因为find_last_of返回的分隔符“/”的位置,+1是为了丢掉“/”
string fileName = pathAndFileName.substr(pathAndFileName.find_last_of("/")+1);
注意:
1).find_last_of()
输入参数可以为字符串、也可以为单独一个字符;
但是要注意的是,当输入参数为字符串时,该函数从后往前匹配,只要匹配上字符串中的任意一个字符,就会返回该字符的位置。
2).substr()
字符串截取函数。当输入仅1个位置参数时,截取的是从该位置到最后的部分;
当输入为2个位置参数时,截取的是2个位置中间的部分。
同理,如果只想要截取路径部分:
//因为find_last_of返回的分隔符“/”的位置,+1是为了丢掉“/”
string fileName = pathAndFileName.substr(0,pathAndFileName.find_last_of("/"));