2009-12-17 108 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