Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 要从字符串c+;中删除\n\t空格+;_C++_Whitespace_Mime - Fatal编程技术网

C++ 要从字符串c+;中删除\n\t空格+;

C++ 要从字符串c+;中删除\n\t空格+;,c++,whitespace,mime,C++,Whitespace,Mime,我需要从输入字符串中删除“\n\t” 比如说, "lorenda bianco" <loredana.bianco@yahoo.co.jp> 不知怎么的,这不管用。但当我打印时,它会显示4个单独的空格,而不是一个选项卡。也许这就是它不起作用的原因。它需要单个制表符,而不是4个连续的空格字符。我不知道如何破解它 ---尝试从字符串中删除\n\t失败(\n可行,但\t仍然存在) 删除ws之前的str:“lorenda bianco” 删除ws后的str:“lore

我需要从输入字符串中删除“\n\t”

比如说,

"lorenda bianco"
<loredana.bianco@yahoo.co.jp>
不知怎么的,这不管用。但当我打印时,它会显示4个单独的空格,而不是一个选项卡。也许这就是它不起作用的原因。它需要单个制表符,而不是4个连续的空格字符。我不知道如何破解它

---尝试从字符串中删除\n\t失败(\n可行,但\t仍然存在)

删除ws之前的str:“lorenda bianco” 删除ws后的str:“lorenda bianco”loredana。bianco@yahoo.co.jp
#包括
#include <iostream>

int main()
{
    std::string myString = "lorenda bianco\n\t <loredana.bianco@yahoo.co.jp>";

    std::cout << "Before changing: \"" << myString << "\"\n";


    for (int i=0; i < myString.length(); i++){
            if ( myString[i] == '\n'){
                myString.erase(i, 1);
                i -= 1;
            }
            if ( myString[i] == '\t'){
                myString.erase(i, 1);
                i -= 1;
            }

    }


    std::cout << "After changing: \"" << myString << "\"\n";

    return 0;
}
int main() { std::string myString=“lorenda bianco\n\t”;
STD::CUT可能有助于使用C++ String::替换。请提供任何结论,而不必查看您如何尝试读取和存储信息。代码>似乎是可行的方法。更新了有问题的示例输出。@Elliott缩进在这里出错。\t不起作用。简而言之,对于您的解决方案,\n会被删除,但不会\t。正如David所说,最佳做法是使用。我无法根据我在这里读到的内容重现您的问题。@Elliott:实际上,我想将\n\t作为一个组合删除。@Elliott仅根据MIME要求删除。删除\n或\t目前对我来说并不重要。这应该可以工作,然后是第二段代码。如果有超过1个组合,请删除中断并在运行If语句后从i中减去2。使用@404TNF解决方案,\n可以正常工作。但是\t不起作用。当我打印它时,它显示为9月4日不考虑4个空间的单个组合。@ 404TNF,抱歉,代码中仍然有错误。<代码>(int < /Code >…应该是代码>(未签名< /代码>……也,您的第二个代码>如果< /Code >应该是“代码>”,如果 >。上面代码崩溃的例子:<代码> MyScord=“\n”
@404TNF,下面是一个如何修复它的示例,它不需要
--i
然后
++i
s.erase(std::remove_if(s.begin(), s.end(), '\t'), s.end());
str before ws removal: "lorenda bianco"
<loredana.bianco@yahoo.co.jp>
#include <iostream>

int main()
{
    std::string myString = "lorenda bianco\n\t <loredana.bianco@yahoo.co.jp>";

    std::cout << "Before changing: \"" << myString << "\"\n";


    for (int i=0; i < myString.length(); i++){
            if ( myString[i] == '\n'){
                myString.erase(i, 1);
                i -= 1;
            }
            if ( myString[i] == '\t'){
                myString.erase(i, 1);
                i -= 1;
            }

    }


    std::cout << "After changing: \"" << myString << "\"\n";

    return 0;
}