MFC CString Replace函数
答案:3 悬赏:10 手机版
解决时间 2021-01-19 18:19
- 提问者网友:谁的错
- 2021-01-19 03:19
MFC CString Replace函数
最佳答案
- 五星知识达人网友:何以畏孤独
- 2021-01-19 04:01
CString::Replace
int Replace( TCHAR chOld, TCHAR chNew );
int Replace(
LPCTSTR lpszOld, LPCTSTR lpszNew
);
返回值:返回被替换的字符数。如果这个字符串没有改变则返回零。
参数:
chOld
要被chNew替换的字符。
chNew
要用来替换chOld的字符。
lpszOld
一个指向字符串的指针,该字符串包含了要被lpszNew替换的字符。
lpszNew
一个指向字符串的指针,该字符串包含了要用来替换lpszOld的字符。
说明:
此成员函数用一个字符替换另一个字符。函数的第一个原形在字符串中用chNew现场替换chOld。函数的第二个原形用lpszNew指定的字符串替换lpszOld指定的子串。
在替换之后,该字符串有可能增长或缩短;那是因为lpszNew和lpszOld的长度不需要是相等的。两种版本形式都进行区分大小写的匹配。
示例:
//
第一个例子,old 和new具有相同的长度。
CString strZap( "C--" );
int n =
strZap.Replace('-', '+' );
ASSERT( n == 2 );
ASSERT(strZap == "C++"
);
// 第二个例子,old和new具有不同的长度。
CString strBang("Everybody likes ice
hockey");
n = strBang.Replace( "hockey", "golf" );
ASSERT( n == 1 )
n =
strBang.Replace ( "likes" , "plays" );
ASSERT( n == 1 )
n =
strBang.Replace( "ice", NULL );
ASSERT( n == 1 )
ASSERT( strBang ==
"Everybody plays golf" )
// 注意,现在在你的句子中有了一个额外的空格。
//
要移走这个额外的空格,可以将它包括在要被替换的字符串中,例如,“ice”。
int Replace( TCHAR chOld, TCHAR chNew );
int Replace(
LPCTSTR lpszOld, LPCTSTR lpszNew
);
返回值:返回被替换的字符数。如果这个字符串没有改变则返回零。
参数:
chOld
要被chNew替换的字符。
chNew
要用来替换chOld的字符。
lpszOld
一个指向字符串的指针,该字符串包含了要被lpszNew替换的字符。
lpszNew
一个指向字符串的指针,该字符串包含了要用来替换lpszOld的字符。
说明:
此成员函数用一个字符替换另一个字符。函数的第一个原形在字符串中用chNew现场替换chOld。函数的第二个原形用lpszNew指定的字符串替换lpszOld指定的子串。
在替换之后,该字符串有可能增长或缩短;那是因为lpszNew和lpszOld的长度不需要是相等的。两种版本形式都进行区分大小写的匹配。
示例:
//
第一个例子,old 和new具有相同的长度。
CString strZap( "C--" );
int n =
strZap.Replace('-', '+' );
ASSERT( n == 2 );
ASSERT(strZap == "C++"
);
// 第二个例子,old和new具有不同的长度。
CString strBang("Everybody likes ice
hockey");
n = strBang.Replace( "hockey", "golf" );
ASSERT( n == 1 )
n =
strBang.Replace ( "likes" , "plays" );
ASSERT( n == 1 )
n =
strBang.Replace( "ice", NULL );
ASSERT( n == 1 )
ASSERT( strBang ==
"Everybody plays golf" )
// 注意,现在在你的句子中有了一个额外的空格。
//
要移走这个额外的空格,可以将它包括在要被替换的字符串中,例如,“ice”。
全部回答
- 1楼网友:北城痞子
- 2021-01-19 05:24
\\合起来算是一个字符,所以 "\" 这个必然报错,下面有个用例,希望有所帮助
CString str = "c:\11\22\33.txt";
TRACE (str);//输出为乱码c: ...txt
TRACE ("\n");
CString ss = "c:\\11\\22\\33.txt";
TRACE (ss);//输出为c:\11\22\33.txt
TRACE ("\n");
int nnnn = ss.Replace("\\","\\\\");
TRACE (ss);//输出为c:\\11\\22\\33.txt
TRACE ("\n");
char a = '\\';//=92 具体看ASCII表
int aa = '\\';//同上
CString str = "c:\11\22\33.txt";
TRACE (str);//输出为乱码c: ...txt
TRACE ("\n");
CString ss = "c:\\11\\22\\33.txt";
TRACE (ss);//输出为c:\11\22\33.txt
TRACE ("\n");
int nnnn = ss.Replace("\\","\\\\");
TRACE (ss);//输出为c:\\11\\22\\33.txt
TRACE ("\n");
char a = '\\';//=92 具体看ASCII表
int aa = '\\';//同上
- 2楼网友:走死在岁月里
- 2021-01-19 04:31
记得转义字符 那么就是
int n = ss.Replace(L"\\",L"\\\\");追问那么一张txt数据表里面,数据类型是这样的
1 1 22 32 343
23 34 45 34 34
23 34 44 4 32
这样一张数据表,我要知道这张数据表总共有多少行,应该用什么函数呢?
如果我要一行一行读取,是不是file.ReadString( szLine )就行了?追答知道多少行 就用file.ReadString( szLine ) 一直到完毕为止
或者单个读 读到一个\n算一行追问一行中间是用空格隔开的,要单个单词单个单词的读,应该是用什么函数呢?追答单个单个读取非空格字符 遇到空格把前面读的存入 数组或者其他里面 算作一个单词追问额、、我问的是哪个函数可以这样做到。。我刚学MFC,不是很熟悉追答C语言的字符串有strtok
CString 貌似没有 CString是个非标准的类
int n = ss.Replace(L"\\",L"\\\\");追问那么一张txt数据表里面,数据类型是这样的
1 1 22 32 343
23 34 45 34 34
23 34 44 4 32
这样一张数据表,我要知道这张数据表总共有多少行,应该用什么函数呢?
如果我要一行一行读取,是不是file.ReadString( szLine )就行了?追答知道多少行 就用file.ReadString( szLine ) 一直到完毕为止
或者单个读 读到一个\n算一行追问一行中间是用空格隔开的,要单个单词单个单词的读,应该是用什么函数呢?追答单个单个读取非空格字符 遇到空格把前面读的存入 数组或者其他里面 算作一个单词追问额、、我问的是哪个函数可以这样做到。。我刚学MFC,不是很熟悉追答C语言的字符串有strtok
CString 貌似没有 CString是个非标准的类
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯