如何从一段长字符串中提取自己需要的敏感数据的问题 比如说:少林功夫好,真 是 好,小 林 功 夫棒,真是 棒,他是 金 刚腿,我是铁头功。敏感数据时 金刚腿则返回....他是金刚腿,我是铁头功。我知道用CString的Find和Mid,可是当用Mid取值的时候,Mid(s,start,length)以为有的字占2位字符,而有的只占1位,如果取错了就出现乱码,请问该怎么办只能将所有的都转为unicode字符,可是转完后又不能用CString的一些函数了,比如find,mid等 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你最好用STL的string比较好一点~ 我想实现这样的"沧海r医生小"这一个字符串如果用Mid(2,4)想要的结果是"海r",而不是"海r?"这个怎么整 如何将r变成2个字符的宽度 你可以使用STL中的typedef basic_string<wchar_t> STRING;然后你就可以使用STRING类的find和substr()来提取你想要的子串 楼上的4星哥哥能否说的详细点,我是个菜鸟帮帮忙吧,想了好几天了还有typedef basic_string<wchar_t> STRING;是什么意思,我该怎么顶一字符串,这个字符串很长 STL中的basic_string<>是一个模板类而string使用basic_string<>定义的一个类型别名,其中模板参数是ANSI字符char也就是typedef basic_string<char> string;wchar_t是UNICODE字符你可以按上面的方法定义一个容纳UNICODE字符的字符串typedef basic_string<wchar_t> STRING;这样定义的STRING类就可以容纳UNICODE字符由于STRING只是basic_string<>模板类的一个特化版本在STRING中你一样可以使用basic_string<>中的成员函数find以及substr()来提取整个字符串中你感兴趣的子串!find函数原型size_type find( value_type _Ch, size_type _Off = 0) const;size_type find( const value_type* _Ptr, size_type _Off = 0) const;size_type find( const value_type* _Ptr, size_type _Off = 0, size_type _Count) const;size_type find( const basic_string& _Str, size_type _Off = 0) const;substr函数原型basic_string substr( size_type _Off = 0, size_type _Count = npos) const;这两个函数的功能相当与CString类中的Find函数和Mid函数使用方法基本相同!更多关于basic_string<>模板类的信息,参考一下MSDN !参考一下#include <string>#include <iostream>typedef basic_string<wchar_t> STRING;void main( ) { using namespace std; STRING str1 ("Heterological paradoxes are persistent."); cout << "The original string str1 is: \n " << str1 << endl << endl; STRING str2 = str1.substr ( 6 , 7 ); cout << "The substring str1 copied is: " << str2 << endl << endl; STRING str3 = str1.substr ( ); cout << "The default substring str3 is: \n " << str3 << "\n which is the entire original string." << endl;}希望对你有所帮助! #include <string>#include <iostream>using namespace std;typedef basic_string<wchar_t> STRING;int main(int argc, char* argv[]){ STRING str1(L"²×º£2Ò½ÉúС"); STRING str2 = str1.substr(2,4); return 0;} 谁说用了unicode后CString类的函数用不了我就是使用unicode处理的带有中英文的字符串 老大,怎么用UNICODE处理带有中英文的字符串 在project->settings->c/c++->preprocessor definitions编辑框中加入“,UNICODE,_UNICODE”,注意要加入一些处理unicode的lib如mfc42ud.lib等等,可以在vc的安装盘中找到。然后在Link’ tab, category ‘output’设置‘Entry-point symbol’为 ‘wWinMainCRTStartup’.这样以后,你就可以处理unicode字符串,使用CString类定义的字符串应该加上_T,例如CString msg = _T("I am 龙行天下");assert(msg.GetLength() == 9);assert(sizeof(msg) == 13);assert(msg.Find(_T("行")) == 6); 乱码 CTRL+v的问题 FlashWindow一般都怎么使用?? 请问如何高效删除一文本文件中的一行? 怎么手工添加控件父类的消息映射? 如何得到Edit box的文本? 200分:这么简单的构造函数没有高手会帮我改一下吗?关于二叉树结点数据的构造,该如何来做,请看源码? 高分回报:多种文件格式的OLE显示问题,3 一直没搞懂的一个问题 快去下载一个: 设计模式迷你手册.chm 吧! 如何为一个DataGrid控件增加数据源 在线等 急急 有答案立即结贴给分 如何更改MFC应用程序的默认Brush?
如果用Mid(2,4)
想要的结果是"海r",
而不是"海r?"
这个怎么整
如何将r变成2个字符的宽度
typedef basic_string<wchar_t> STRING;然后你就可以使用STRING类的find和substr()来提取你想要的子串
帮帮忙吧,想了好几天了
还有
typedef basic_string<wchar_t> STRING;
是什么意思,
我该怎么顶一字符串,这个字符串很长
而string使用basic_string<>定义的一个类型别名,其中模板参数是ANSI字符char
也就是
typedef basic_string<char> string;wchar_t是UNICODE字符
你可以按上面的方法定义一个容纳UNICODE字符的字符串
typedef basic_string<wchar_t> STRING;
这样定义的STRING类就可以容纳UNICODE字符
由于STRING只是basic_string<>模板类的一个特化版本
在STRING中你一样可以使用basic_string<>中的成员函数find以及substr()来提取整个字符串中你感兴趣的子串!find函数原型
size_type find(
value_type _Ch,
size_type _Off = 0
) const;
size_type find(
const value_type* _Ptr,
size_type _Off = 0
) const;
size_type find(
const value_type* _Ptr,
size_type _Off = 0,
size_type _Count
) const;
size_type find(
const basic_string& _Str,
size_type _Off = 0
) const;substr函数原型
basic_string substr(
size_type _Off = 0,
size_type _Count = npos
) const;
这两个函数的功能相当与CString类中的Find函数和Mid函数
使用方法基本相同!更多关于basic_string<>模板类的信息,参考一下MSDN !参考一下
#include <string>
#include <iostream>
typedef basic_string<wchar_t> STRING;
void main( )
{
using namespace std; STRING str1 ("Heterological paradoxes are persistent.");
cout << "The original string str1 is: \n " << str1
<< endl << endl; STRING str2 = str1.substr ( 6 , 7 );
cout << "The substring str1 copied is: " << str2
<< endl << endl;
STRING str3 = str1.substr ( );
cout << "The default substring str3 is: \n " << str3
<< "\n which is the entire original string." << endl;
}希望对你有所帮助!
#include <iostream>
using namespace std;
typedef basic_string<wchar_t> STRING;int main(int argc, char* argv[])
{
STRING str1(L"²×º£2Ò½ÉúС");
STRING str2 = str1.substr(2,4);
return 0;
}
我就是使用unicode处理的带有中英文的字符串
然后在Link’ tab, category ‘output’设置‘Entry-point symbol’为 ‘wWinMainCRTStartup’.这样以后,你就可以处理unicode字符串,使用CString类定义的字符串应该加上_T,例如
CString msg = _T("I am 龙行天下");
assert(msg.GetLength() == 9);
assert(sizeof(msg) == 13);
assert(msg.Find(_T("行")) == 6);