2009-12-17 111 views
1

我需要将MFC CString对象的列表连接成一个CSV字符串。 .NET对此任务有String.Join。有没有一种确定的方式在MFC/C++中做到这一点?CString连接方法?

回答

4

+运算符被重载以允许字符串连接。我建议看看文档在MSDN:

Basic CString Operations有下面的例子:

CString s1 = _T("This ");  // Cascading concatenation 
s1 += _T("is a "); 
CString s2 = _T("test"); 
CString message = s1 + _T("big ") + s2; 
// Message contains "This is a big test". 

如果你想串是用逗号分隔的,只是自己添加逗号。

0

遍历调用AppendFormat方法的CString对象列表。

// Initialize CStringList 
CStringList cslist ; 
cslist.AddTail("yaba") ; 
cslist.AddTail("daba") ; 
cslist.AddTail("doo" ) ; 

// Join 
CString csv ; 
for (POSITION pos = cslist.GetHeadPosition() ; pos != NULL ;) 
    csv.AppendFormat(",%s" , cslist.GetNext(pos)) ; 
csv.Delete(0) ; // remove leading comma 
+1

删除字符串的第一个字符必须是您可以执行的最昂贵的操作。切换逗号并删除最后一个字符。或者只是不要生成额外的逗号。 – jmucchiello 2009-12-17 18:07:15

+0

只能从VS2005开始工作,而不是VS6。 – Nux 2012-12-13 12:39:49