删除字符串中的空格c++
时间: 2023-12-11 20:04:54 浏览: 259
可以使用以下代码删除字符串中的空格:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "Hello World! ";
string result;
for (int i = 0; i < str.length(); i++) {
if (str[i] != ' ') {
result += str[i];
}
}
cout << result << endl;
return 0;
}
```
运行结果为:`HelloWorld!`
相关问题
掉字符串首尾空格c++
可以使用C++中的字符串处理函数`std::string::find_first_not_of`和`std::string::find_last_not_of`来去除字符串的首尾空格。
示例代码:
```c++
#include <iostream>
#include <string>
int main() {
std::string str = " hello world! ";
size_t start = str.find_first_not_of(" ");
size_t end = str.find_last_not_of(" ");
if (start == std::string::npos || end == std::string::npos) {
std::cout << "Error: string is all spaces\n";
return 1;
}
std::string trimmed_str = str.substr(start, end - start + 1);
std::cout << trimmed_str << std::endl; // output: "hello world!"
return 0;
}
```
在上述代码中,`std::string::find_first_not_of`和`std::string::find_last_not_of`函数分别查找第一个非空格字符和最后一个非空格字符的位置。如果字符串全部为空格,则这两个函数的返回值都是`std::string::npos`,表示查找失败。如果字符串不全是空格,则使用`std::string::substr`函数提取出去除空格后的子字符串。
c++去除字符串中空格
### 回答1:
要去除一个字符串中的空格,可以使用字符串的 replace() 方法。具体来说,可以使用如下代码:
``` python
str = "Hello World"
str_without_spaces = str.replace(" ", "")
print(str_without_spaces)
```
在这个例子中,我们首先定义了一个包含空格的字符串。然后,我们使用 replace() 方法来将字符串中的空格替换成空字符串。最后,我们将结果打印出来,以验证空格是否已被去除。
需要注意的是,在这个方法中,我们将空格的字符串作为第一个参数传入 replace() 方法中,相应地,将空字符串作为第二个参数传入。通过这个方法,我们可以完成一个简单、快速、并有效的去除字符串空格的过程。
### 回答2:
C语言中去除字符串中空格可以使用标准库中的函数和指针操作来完成。
方法一:使用标准库中的函数
在C语言中,标准库提供了函数能够去除字符串中的空格,具体实现代码如下:
```c
#include<stdio.h>
#include<string.h>
void removeSpaces(char *str) {
int len = strlen(str);
int i, j = 0;
for (i = 0; i<len; i++) {
if (*(str + i) != ' ') {
*(str + j) = *(str + i);
j++;
}
}
*(str + j) = '\0';
}
int main() {
char str[] = " hello world ";
printf("Original string : %s\n", str);
removeSpaces(str);
printf("String after spaces removed: %s\n", str);
return 0;
}
```
方法二:使用指针操作
使用指针操作去除字符串中空格,具体实现代码如下:
```c
#include<stdio.h>
#include<string.h>
void removeSpaces(char *str) {
char *temp = str;
int len = strlen(str);
while (*str) {
if (*str != ' ') {
*temp = *str;
temp++;
}
str++;
}
*temp = '\0';
}
int main() {
char str[] = " hello world ";
printf("Original string : %s\n", str);
removeSpaces(str);
printf("String after spaces removed: %s\n", str);
return 0;
}
```
以上两个方法都可以有效去除字符串中的空格,其中第一种方法使用了标准库提供的函数,代码可读性较高,使用较为方便;第二种方法实现比较简洁,但需要使用指针,写法稍显复杂。对于C语言初学者可以先学习第一种方法,更加熟悉C标准库,从而掌握C语言字符串处理的基本方法。
### 回答3:
C 语言中去除字符串中的空格可以通过多种方法实现。下面介绍两种方法。
1. 方法一:使用指针和循环
使用指针和循环可以遍历字符串中每个字符,将非空格字符转移到新的字符串指针中,实现去除空格的功能。具体步骤如下:
- 定义两个指针:一个指向原字符串,一个指向新字符串。
- 使用循环遍历原字符串中每一个字符,判断是否为空格。
- 如果不是空格,将该字符移动到新字符串指针的位置,并将新字符串指针前移一位。
- 循环结束后,将新字符串指针指向的位置赋值为结束符 '\0'。
代码实现如下:
```c
void removeSpaces(char* str) {
char* ptr = str;
char* newPtr = str;
while (*ptr != '\0') {
if (*ptr != ' ') {
*newPtr = *ptr;
newPtr++;
}
ptr++;
}
*newPtr = '\0';
}
```
2. 方法二:使用库函数
C 语言中,可以使用库函数 `strcpy()` 和 `strncpy()` 实现字符串复制功能,使用 `isspace()` 函数判断空格。具体步骤如下:
- 定义两个指针:一个指向原字符串,一个指向新字符串。
- 使用循环遍历原字符串中每一个字符,判断是否为空格。
- 如果不是空格,使用 `strcpy()` 或 `strncpy()` 函数将该字符移动到新字符串指针的位置。
- 如果是空格,跳过该字符。
- 循环结束后,将新字符串指针指向的位置赋值为结束符 '\0'。
代码实现如下:
```c
#include <ctype.h>
#include <string.h>
void removeSpaces(char* str) {
char* newStr = str;
while (*str != '\0') {
if (isspace(*str) == 0) {
strncpy(newStr, str, 1);
newStr++;
}
str++;
}
*newStr = '\0';
}
```
总的来说,以上两种方法都可以实现去除字符串中的空格。具体使用哪一种方法主要根据实际情况和个人习惯来选择。