C++中LastDelimiter的疑惑
我是一个新手,拿起这门语言时间不长,昨天学习过程中遇到一个疑惑,我要从一个AnsiString中截取一段子串,用到了LastDelimiter来做截取起始点的标记
AnsiString name = F:\music\kugou\abcde.mp3 //歌曲路径名
int a = name.LastDelimiter("\");
int b = name.LastDelimiter(".");
Label1->Caption=name.SubString(a,b); //标签显示mp3的名字,也就是我要显示abcde
运行就报错[C++ Error] Unit1.cpp(26): E2380 Unterminated string or character constant,我一个朋友给我改了三个地方:
1、("\")改成了("\\")
2、int a = name.LastDelimiter("\\")+1;
3、Label1->Caption = name.SubString(a,(b-a))+1;
之后成功运行,我就纳闷了,查了书籍,LastDelimiter的返回值为制定字符在串中的位置即“\”的位置索引,他的“\\”哪来的,而且返回的值还要+1,另外substring不是截取指定位置即a和b之间的字串,为什么表达式变成了(a,(b-a))?
求前辈们指点下小弟,谢谢!