📜  删除字符串 C++ 中的空格(1)

📅  最后修改于: 2023-12-03 15:22:43.009000             🧑  作者: Mango

删除字符串 C++ 中的空格

在 C++ 中删除字符串中的空格是一个常见的问题,特别是当我们需要从用户输入中获取字符串时。以下是一些方法可以帮助你轻松删除字符串中的所有空格。

方法一:使用常规的循环和字符数组

这种方法是最基本的,但也是最容易理解的。基本思想是使用一个循环来遍历字符串中的每个字符,并检查是否为' '(空格)字符。如果它是,我们就可以删除它。

#include <iostream>
#include <string.h>

int main() {
    char str[] = "Hello World";
    int len = strlen(str);

    for(int i=0; i<len; i++) {
        if(str[i] == ' ') {
            for(int j=i; j<len; j++) {
                str[j] = str[j+1];
            }
            len--;
            i--;
        }
    }

    std::cout << "The string after removing spaces: " << str << '\n';
    return 0;
}
方法二:使用标准库的 std::string 类

C++ 标准库提供了一个很方便的工具,可以轻松删除字符串中的所有空格字符。我们可以使用 std::stringerase() 函数和 std::remove() 算法来达到我们的目的。

#include <iostream>
#include <string>

int main() {
    std::string str = "Hello World";
    str.erase(std::remove(str.begin(), str.end(), ' '), str.end());

    std::cout << "The string after removing spaces: " << str << '\n';
    return 0;
}
方法三:使用正则表达式

如果您已经熟悉了正则表达式,那么可以使用它们来轻松删除字符串中的所有空格。使用正则表达式库,我们可以匹配所有空格字符,并将其替换为一个空字符。

#include <iostream>
#include <regex>

int main() {
    std::string str = "Hello World";
    std::regex pattern("[[:s:]]");
    str = std::regex_replace(str, pattern, "");

    std::cout << "The string after removing spaces: " << str << '\n';
    return 0;
}

以上是三种在 C++ 中删除字符串中空格的常用方法。使用这些技巧可以方便地去除所有的空格字符,确保您的字符串处理更加优秀。