不要将特定项存储在数组c++中

do not store specific item in array c++

本文关键字:数组 c++ 存储      更新时间:2023-10-16

我尝试过使用remove_ifis_spacefind的不同实现,但我仍然不知道如何正确实现它。任何指针都将不胜感激。

编辑:我想检查一个字符是否是空格符号,如果是,不要将其存储在字符数组中。

for (int u = 0; u <= resultLength; u++) {
    resultLetters[u] = tolower(result[u]);
    if (result[u] == ' ') {
        // don't store me
    }
    cout << resultLetters[u] << endl;
}

您只需要"错过"空格,如下所示:

int currentIndex = 0;
for (int u = 0; u <= resultLength; u++) {
    if (result[u] != ' ') {
        result[currentIndex] = tolower(result[u]);
        currentIndex++;
    }
    cout << result[u] << endl;
}

注意,currentIndex将保持空间移除后阵列的长度。

那么,您尝试了什么remove_if/isspace代码?如果使用得当,它们确实有效。

#include <cctype>
#include <algorithm>
resultLength = std::distance(
    std::begin(result),
    std::remove_if(std::begin(result),
                   std::advance(std::begin(result), resultLength),
                   [](char c) { return isspace(c); });
std::transform(std::begin(c), std::advance(std::begin(result), resultLength),
               [](char c) { return std::tolower(c); });
for (int u = 0, int i = 0; u <= resultLength; u++) {
    if (result[u] != ' ') {
        resultLetters[i] = tolower(result[u]);
        i++;
    }
    cout << resultLetters[u] << endl;
}

resultLetters将只有"(空格字符)以外的字符