c++ - 删除空格

标签 c++

我使用以下命令从我的变量中删除空格

        for (i=0, ptr=lpsz;ptr[i];ptr++)
        {
            if (*ptr == ' ')
                i++;

            *ptr = ptr[i];
        }
        *ptr=0;

但是当有多个空格时似乎有问题,我不确定我做错了什么。谁能帮帮我?

最佳答案

我建议你使用 std::isspace而不是做你的指针魔术。

如果您将 std::stringstd::isspace 结合使用,您可以这样做:

std::string str = "Hello World Today";

str.erase(remove_if(str.begin(), str.end(), isspace), str.end());  

source

字符串实际上只是字符的容器,因此您可以对其应用删除/删除习语。

关于c++ - 删除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18359354/

相关文章:

C++:如何从另一个谓词定义泛型非谓词

C++ - 从/dev/urandom 中提取随机数

c++ - 为什么将此代码编译为 C 和 C++ 代码会生成不同的程序集?

c++ - const 方法中的 const_cast 'this' 将 'this' 分配给外部变量?

c++ - 为什么 sscanf 不能正常使用 bool 类型

c++ - 简单的 C++ pthread 程序输出与预期不符

c++ - 传递指针的正确方法? C++

c++ - 在 C++ OpenCV 中使用多个自定义矩阵计算 RGB 图像矩阵

c++ - 无法在 Visual Studio 2013 中创建 C++ 控制台应用程序

c++ - 写得很好的 C++ 例子