编写程序对输入的字符串进行处理,去掉首尾的空格。 使用c++
时间: 2024-03-07 17:46:41 浏览: 67
下面是一个简单的 C++ 程序,用于从标准输入读取字符串,并去除其首尾空格。
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
getline(cin, s); // 从标准输入读取字符串
// 去除首尾空格
int i = 0, j = s.length() - 1;
while (i < s.length() && s[i] == ' ') i++;
while (j >= 0 && s[j] == ' ') j--;
s = s.substr(i, j - i + 1);
cout << s << endl; // 输出处理后的字符串
return 0;
}
```
以上程序中,我们使用了 `getline` 函数从标准输入读取一行字符串,然后使用两个指针 `i` 和 `j` 分别指向字符串的头和尾,循环移动指针直到它们指向一个非空格字符,然后使用 `substr` 函数从字符串中提取出去掉空格后的部分。最后输出结果即可。
相关问题
c++字符串去掉首尾空格
在 C++ 中,你可以使用 `std::string` 类型提供的 `erase()` 和 `find()` 函数来去除字符串首尾的空格。这里是一个简单的示例:
```cpp
#include <iostream>
#include <string>
std::string removeSpacesAt Ends(const std::string& str) {
// 查找第一个非空字符的位置,如果没有则返回字符串长度
size_t start = str.find_first_not_of(" ");
// 查找最后一个非空字符的位置,如果没有则返回0
size_t end = str.rfind_last_not_of(" ");
// 如果找不到非空字符,则字符串全为空格
if (start == std::string::npos || end == std::string::npos)
return "";
// 使用截取操作符将首尾空格去掉,并返回新的字符串
return str.substr(start, end - start + 1); // +1是因为要包含结束位置的字符
}
int main() {
std::string str = " Hello, World! ";
str = removeSpacesAt Ends(str);
std::cout << "Original: " << str << std::endl; // 输出 "Hello, World!"
return 0;
}
```
去掉字符串首尾空格C++指针
可以使用C++的字符串库函数`trim`去掉字符串首尾空格,示例代码如下:
```c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string str = " hello world ";
str.erase(str.begin(), find_if(str.begin(), str.end(), [](int ch) {
return !isspace(ch);
}));
str.erase(find_if(str.rbegin(), str.rend(), [](int ch) {
return !isspace(ch);
}).base(), str.end());
cout << "去掉首尾空格后的字符串为:" << str << endl;
return 0;
}
```
输出结果为:
```
去掉首尾空格后的字符串为:hello world
```
阅读全文