C++ 杂谈之去除空格

下面的代码是用来去除字符串两端空格或者字符串中所有的空格

bool EarseSpace(string &str)   //删除字符串两端的字符
{int first = 0;int end = 0;bool isFirst = false;bool isEnd = false;while (1){if (str.at(first) == ' ' && isFirst == false){str.erase(first, 1);first = 0;}else if (str.at(first) != ' '){isFirst = true;end = str.size() - 1;if (str.at(end) == ' ' && isEnd == false)str.erase(end, 1);else if (str.at(end) != ' ')isEnd = true;}if (isFirst && isEnd)return true;}return false;
}string EarseSpace(const char* szChar)
{string str(szChar);bool isTrue= EarseSpace(str);if (isTrue)return str;return szChar;
}bool EarseInSpace(string& str)//去除所有的空格,里面返回值有点问题
{int pos = 0;while (pos < str.size()){if (str.at(pos) == ' '){str.erase(pos, 1);pos = 0;}else{pos++;}}return true;
}string EarseInSpace(const char* szChar)
{string str(szChar);bool isTrue= EarseInSpace(str);if (isTrue)return str;return szChar;
}int main()
{string str2("  你好,    再见  ");string str3("  k   ");cout << str2.size() << endl;if (EarseInSpace(str2))cout << str2 <<" "<<str2.size()<< endl;cout << EarseSpace("    k 可以     ") << endl;cout << EarseInSpace(" nishi   你是  ") << endl;return 0;
}

为解析XML中的数据做准备

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注