判断字符串首尾是否有空格的trim()函数
发布时间:2023-07-04 20:54:29
trim()函数用于除去字符串首尾的空格。下面是一个判断字符串首尾是否有空格的trim()函数,代码行数可能会超过1000字。
#include <iostream>
#include <string>
using namespace std;
bool hasLeadingTrailingSpace(const string& str) {
string trimmedStr = str;
// 除去字符串开头的空格
int leadingSpaceCount = 0;
while (trimmedStr[0] == ' ') {
leadingSpaceCount++;
trimmedStr = trimmedStr.substr(1);
}
// 除去字符串末尾的空格
int trailingSpaceCount = 0;
while (trimmedStr[trimmedStr.length() - 1] == ' ') {
trailingSpaceCount++;
trimmedStr = trimmedStr.substr(0, trimmedStr.length() - 1);
}
// 判断是否有空格
if (leadingSpaceCount > 0 || trailingSpaceCount > 0) {
cout << "原始字符串: " << str << endl;
cout << "除去空格后的字符串: " << trimmedStr << endl;
cout << "首部空格数量: " << leadingSpaceCount << endl;
cout << "末尾空格数量: " << trailingSpaceCount << endl;
return true;
}
return false;
}
int main() {
string str1 = " Hello World!";
bool result1 = hasLeadingTrailingSpace(str1);
cout << "有空格:" << (result1 ? "是" : "否") << endl;
cout << endl;
string str2 = "Hello World! ";
bool result2 = hasLeadingTrailingSpace(str2);
cout << "有空格:" << (result2 ? "是" : "否") << endl;
cout << endl;
string str3 = "Hello World!";
bool result3 = hasLeadingTrailingSpace(str3);
cout << "有空格:" << (result3 ? "是" : "否") << endl;
cout << endl;
return 0;
}
上述代码先定义了一个名为hasLeadingTrailingSpace的函数,它接受一个const引用类型的string参数。函数内部首先将输入的字符串保存到一个名为trimmedStr的字符串中,然后通过循环和substr函数将开头和末尾的空格除去。除去过程中会记录开头空格的数量和末尾空格的数量。最后,根据开头和末尾空格的数量判断是否存在空格。如果存在空格,则输出原始字符串、除去空格后的字符串、开头空格的数量和末尾空格的数量,并返回true;否则,返回false。
在main函数中,分别测试了带有开头空格、带有末尾空格和不带空格的三种字符串,并输出相应的结果。
通过以上代码,我们可以判断一个字符串是否存在首尾空格。
