头歌去掉字符串首尾空格c++
时间: 2024-09-25 20:18:24 浏览: 7
在C++中,要去掉字符串(std::string)的首尾空格,你可以使用`std::string`类提供的成员函数`trim()`。然而,由于C++标准库并没有直接提供这样的功能,你可以自定义一个简单的辅助函数来实现这个需求。这里是一个示例:
```cpp
#include <algorithm>
#include <string>
// 自定义函数去除首尾空格
std::string trimWhitespace(std::string str) {
str.erase(0, str.find_first_not_of(' ')); // 移除开头空格
if (str.empty()) return str; // 如果只剩空串,直接返回
str.erase(str.size() - str.rfind(' ') - 1); // 移除结尾空格
return str;
}
int main() {
std::string str = " Hello, World! ";
str = trimWhitespace(str);
std::cout << "Trimmed string: " << str << std::endl;
相关问题
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;
}
```
编程要求 在右侧编辑器中的Begin-End之间补充代码,以实现去掉字符串(字符串由平台提供,且已在主函数中获取)首尾空格的功能。具体要求如下: 对于输入的字符串,去掉该字符串首尾的空格后输出; 字符串的存储使用一维字符数组,但本关要求使用指针操作。写完程序后,你也会发现使用指针实现会容易得多。#include <iostream> using namespace std; char * trim(char * str); int main() { char s[1024]; // 定义存储字符串的一维字符数组 // 输入一行字符,可以包含空格 // 输入的字符串存入s中,最多读取个字符,后面自动加上'\0' cin.getline(s,1024); cout << trim(s) << endl; // 输出去掉首尾空格后的字符串 return 0; } // 函数trim:去掉字符串首尾空格 // 参数:str-字符指针,指向输入的字符串 // 返回值:字符指针,指向去掉首尾空格后的字符串(首地址) // 提示:可以直接在字符串str中操作 char * trim(char * str) { // 请在此添加代码,实现函数trim /********** Begin *********/ /********** End **********/ }
以下是补充代码:
```c++
char * trim(char * str) {
// 去掉开头的空格
while (*str == ' ') {
str++;
}
// 去掉结尾的空格
char * end = str + strlen(str) - 1;
while (*end == ' ' && end >= str) {
end--;
}
*(end + 1) = '\0'; // 加上字符串结尾标志'\0'
return str;
}
```
这个函数的实现比较简单,首先使用指针从字符串开头开始扫描,去掉开头的空格。然后再使用指针从字符串结尾开始扫描,去掉结尾的空格。最后加上字符串结尾标志'\0',返回去掉首尾空格后的字符串首地址即可。
注意,这个函数中使用了字符串函数`strlen`,需要在程序开头添加`#include <cstring>`这一头文件。