自制删除如果是 space

Self made remove if is space

我正在学习 C++,为了练习,我正在制作一个四功能计算器。我正在尝试(出于实践原因)制作我自己的函数,从字符串中删除所有空格。该函数可以编译,但在执行该函数时程序会崩溃。谁能告诉我哪里出了问题?

函数:

int operate(std::string inRaw) {
    // Parsing
    int j = 0;
    int inMinLen;
    int inLen = inRaw.length();
    std::string inSub, in[inLen];
    for(int i = 0; i < inLen; i++) {
        inSub = inRaw.substr(i, 1);
        while(inSub != " ") {
            in[j] = inSub;
            j++;
        }
        inMinLen = j+1;
    }
    std::string inMin[inMinLen];
    for(int k = 0; k < inMinLen; k++) {
        inMin[k] = in[k];
        std::cout << in[k]; // DEBUG
    }
}

这个 while 循环:

    while(inSub != " ") {

永远不会完成,因为您永远不会在循环内更改 insub 的值。

仅供参考,没有调用任何预定义字符串的函数
functions/methods 除了大小,并且只有一个数组:

void operate(std::string inRaw) {
    size_t len = inRaw.length();
    size_t current = 0;
    char *data = new char[len + 1];

    for(size_t i = 0; i < len; i++)
    {
        data[current] = inRaw[i];
        if(data[current] != ' ')
            current++;
    }

    data[current] = '[=10=]';
    cout << data << endl;
    delete[] data;
}

但无论如何,像 KerrekSB 示例中的解决方案更可取。