2013-06-20 50 views
0

美好的一天。我目前正在使用MFC C++中的套接字(在Visual Studio 2010中)进行服务器 - 客户端聊天程序。这是因为我们从来没有教过的语言说,早在大学(耻辱)我的第一个C++程序删除白色空间在MFC C++

不管怎么说,到目前为止,我一直在做的不错。然后,我添加了字符串长度来计算发送了多少个字符。值得庆幸的是,由于搜索互联网和论坛,我已经做到了。然后,这是我的问题,代码计数空白,我不需要这些。我读了.Trim(),但它不是我需要的。我也尝试了.Replace(),但它不工作。任何其他想法?这是我的代码。

//串长度// m_Msg是我的消息

CString strCount; 
strCount = m_Msg; 

// strCount = strCount.Replace(”“, ”“); int Count = strCount.GetLength();

感谢,感谢可以帮助任何想法。

+0

是的,我是教FORTRAN-77在大学;-)。如果您只对非空白字符数量感兴趣,那么最快的方法就是对字符串中的字符进行计数,忽略任何落入空白定义的字符。你不应该以任何方式改变字符串(除非你想使用变异字符串),否则会降低性能。 – Bathsheba

+0

真正的问题是为什么你使用'CString'而不是'std :: string'。 (用'的std :: string',你有机会获得这样的标准功能'的std :: count_if'或'的std :: remove_if') –

+0

你真幸运。这给了我一个想法。 需要再次搜索(“,) 谢谢,谢谢 – WinterBear

回答

4

您可以使用int CString::Remove(TCHAR ch)这需要要删除作为参数的字符,并返回删除的字符数。

strCount.Remove(' '); 

应该做你想做的。我也同意评论说您应该使用std :: string来代替。

+0

谢谢,一次又一次。我从来没有真正知道std :: string,因为我说这是我的第一个C++程序,我真的不知道我在做什么。:'( – WinterBear

+0

CString有一个简单的接口IMO,std :: string看起来可能很复杂,但是当你进入它时并不是那么糟糕。我的建议是看看http://www.cplusplus.com/reference/字符串/字符串/它有大多数(所有?)的std :: strings函数的文档和示例。 – olevegard

+0

感谢olevegard。 =) – WinterBear