2013-06-20 4 views
0

Добрый день. В настоящее время я выполняю программу клиент-клиент Server-Client, используя сокеты в 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/ string/string/у него есть документация и примеры большинства (всех?) функций std :: strings. – olevegard

+0

спасибо olevegard. =) – WinterBear

Смежные вопросы