首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

CString查寻

2013-01-23 
CString查找CString str _T(C:\Users\Administrator\Desktop\手持上传数据_20130111144101_03693692926

CString查找
CString str = _T("C:\Users\Administrator\Desktop\手持上传数据_20130111144101_036936929269.zip");
int find = str.ReverseFind(_T('\'));

我想查找str字符串中的最后一个\的位置,使用CString类的ReverseFind函数。
但是参数设置为_T('\'),编译器就会把\当成转义字符,或者字符串连接符?反正是编译错误:
error C2001: newline in constant
fatal error C1057: unexpected end of file in macro expansion

如果ReverseFind的参数设置为_T('\\'),则ReverseFind返回-1,应该是没找到的意思。

我想设置成_T("\"),但是ReverseFind好像只支持查找字符,不支持查找字符串,还是编译错误。
问题应该挺简单,请大家帮忙。应该怎么搞?谢谢。-_-
[解决办法]

引用:
引用:\\是在写代码中用的,而在内存中只有一个\字符。
其它程序传给你的是什么样的,再仔细调试一下看看吧。没有道理不行啊

其实我是写的一个ATL COM程序,给平台端调用,其中有一个函数,会传入一个字符串参数,现在平台的同事传给我的字符串就是:C:\Users\Administrator\Desktop\手持上传数据_201……

这个肯定是不需要的。不是代码直接写的字符串信息,不需要做这样的处理,只有你在代码中手工写的字符串,需要如此处理,因为转义符是编译态是需要指定的。
[解决办法]
如果单斜杠是你debug时看到的字符串信息,应该是正确的。至于查找失败,也许是其它原因。楼主还需要仔细找找,这可能和其它你未表达出来的信息有关。
[解决办法]
肯定是写成int find = str.ReverseFind(_T('\\'));返回-1,说明没找到,那肯定是字符串有问题...


[解决办法]
引用:
引用:\\是在写代码中用的,而在内存中只有一个\字符。
其它程序传给你的是什么样的,再仔细调试一下看看吧。没有道理不行啊

其实我是写的一个ATL COM程序,给平台端调用,其中有一个函数,会传入一个字符串参数,现在平台的同事传给我的字符串就是:C:\Users\Administrator\Desktop\手持上传数据_201……

那你就不用管了

热点排行