奇怪的字符转行问题
用于操作字符的函数(经过测试没问题的)
//=======================================
//
//Conversion string field (fix bug)
CString CNew::OnFixfieldstringbug(CString strIn)
{
CString str_return;
for(int i=0; i<=strIn.GetLength();i++)
{
if(strIn[i]=='\'')
str_return +="\"";
else
str_return +=strIn[i];
}
//MessageBox(str_return);
return str_return;
}
//========================================
但是我在多次调用并把多次调用的结果都累计到一个cstring变量的时候,却出现了问题,这个变量不可以是完整的
比如
CString str_temp;
CString str_Insert="Insert into News Values (";
//
str_Insert +="'";
GetDlgItemText(IDC_EDIT_TIME,str_temp);
str_Insert +="',";
//
str_Insert +="'";
GetDlgItemText(IDC_CHINA_TITLE,str_temp);
str_Insert +=OnFixfieldstringbug(str_temp);
str_Insert +="',";
//
str_Insert +="'";
GetDlgItemText(IDC_CHINA_CONTONT,str_temp);
str_Insert +=OnFixfieldstringbug(str_temp);
str_Insert +="',";
//
str_Insert +="'";
GetDlgItemText(IDC_IMAGE_LINK,str_temp);
str_Insert +=OnFixfieldstringbug(str_temp);
str_Insert +="',";
//
str_Insert +="'";
GetDlgItemText(IDC_ENGLISH_TITLE,str_temp);
str_Insert +=OnFixfieldstringbug(str_temp);
str_Insert +="',";
//
//
str_Insert +="'";
GetDlgItemText(IDC_EDIT_ENGLISH_CONTONT,str_temp);
str_Insert +=OnFixfieldstringbug(str_temp);
str_Insert +="'";
我的每个DEIT控件里都有字符串,OnFixfieldstringbug(str_temp);处理回来的结果也是正确的,但就不知道为什么str_Insert的结果却只有一半就没下文了
问题点数:100、回复次数:9Top
1 楼saucer(思归)回复于 2003-11-02 03:07:28 得分 80
for(int i=0; i<=strIn.GetLength();i++)
===> ^^^^^??
for(int i=0; i< strIn.GetLength();i++)
by the way, for your purpose, you can simply do
YourString.Replace("\'", "\"");
Top
2 楼mylovepc(浪子)回复于 2003-11-02 09:34:52 得分 0
但是问题不在字符操作函数啊。不过也可以试试Top
3 楼mylovepc(浪子)回复于 2003-11-02 09:42:58 得分 0
saucer(思归) 奇怪了,怎么这样就解决问题了?Top
4 楼xf_lii(浏风)回复于 2003-11-02 10:28:40 得分 20
CString CNew::OnFixfieldstringbug(CString strIn)
{
CString str_return;
for(int i=0; i<=strIn.GetLength();i++) <=== 问题在这 i<strIn.GetLength()
{
if(strIn[i]=='\'')
str_return +="\"";
else
str_return +=strIn[i];
}
//MessageBox(str_return);
return str_return;
}
Top
5 楼tonybaobao(Tony宝宝)回复于 2003-11-02 11:43:43 得分 0
呵呵,永远要坚信是自己代码的问题:)Top
6 楼bluebohe(薄荷)回复于 2003-11-02 13:36:02 得分 0
耀眼的五颗星啊:)Top
7 楼vcforever(累)回复于 2003-11-02 13:45:32 得分 0
专家总榜的老大啊!
耀眼啊!Top
8 楼yintongshun(左岸思雨)回复于 2003-11-02 14:23:34 得分 0
看见5颗星星就眼冒金星Top
9 楼ablefirst(able)回复于 2003-11-02 16:08:48 得分 0
五颗星就是不一样。
CString::Replace
int Replace( TCHAR chOld, TCHAR chNew );
int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );
Top




