去掉字符串首尾空格C++指针
时间: 2023-07-11 07:37:37 浏览: 109
可以使用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
```
相关问题
掉字符串首尾空格c++ 用指针
可以使用指针来去掉字符串首尾的空格,具体实现如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void trim(char* str) {
if (str == nullptr) {
return;
}
// 去掉字符串前面的空格
char* start = str;
while (*start == ' ') {
start++;
}
// 去掉字符串后面的空格
char* end = start + strlen(start) - 1;
while (end > start && *end == ' ') {
end--;
}
*(end + 1) = '\0';
// 拷贝去掉空格后的字符串到原字符串
if (start != str) {
strcpy(str, start);
}
}
int main() {
char str[] = " hello world ";
trim(str);
cout << str << endl; // 输出 hello world
return 0;
}
```
在该代码中,首先定义了一个 `trim` 函数,该函数通过指针遍历字符串,去掉字符串前面和后面的空格,并将去掉空格后的字符串拷贝回原字符串中。最后,在 `main` 函数中测试了一下该函数的功能。
编程要求 在右侧编辑器中的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>`这一头文件。
阅读全文