从cstring中删除空字符

0x6*_*C74 1 c

#ifndef UNICODE
#define UNICODE
#endif

#include <Windows.h>
#include <cstring>
#include <cstdio>



int main()
{
    TCHAR* greeting = L"HELL\0O W\0ORLD!";

    wprintf(L"%s\n",greeting);

    _wsystem(L"pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何删除"问候语"中的所有空字符(尾随除外)?我想避免从头开始创建函数.我的意思是PHP的str_replace的C++版本.

Luc*_*ore 7

不幸的是,之后

TCHAR* greeting = L"HELL\0O W\0ORLD!";
Run Code Online (Sandbox Code Playgroud)

字符串的长度丢失了.运行时只会看到

greeting == L"HELL"; //HA!
Run Code Online (Sandbox Code Playgroud)

您需要存储字符串的长度并手动移动字符.

  • 恶魔参考+ 1 :-) (3认同)