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

C++ 不要在数组c+中存储特定项+;,c++,arrays,C++,Arrays,我尝试了使用remove\u if、is\u space和find的不同实现,但我仍然不知道如何正确实现它。任何指点都将不胜感激 编辑:我想检查字符是否是空格符号,如果是,请不要将其存储在字符数组中 for (int u = 0; u <= resultLength; u++) { resultLetters[u] = tolower(result[u]); if (result[u] == ' ') { // don't store me }

我尝试了使用
remove\u if
is\u space
find
的不同实现,但我仍然不知道如何正确实现它。任何指点都将不胜感激

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

for (int u = 0; u <= resultLength; u++) {
    resultLetters[u] = tolower(result[u]);
    if (result[u] == ' ') {
        // don't store me
    }
    cout << resultLetters[u] << endl;
}
对于(int u=0;u您只需要“忽略”空格,如下所示:

int currentIndex = 0;
for (int u = 0; u <= resultLength; u++) {
    if (result[u] != ' ') {
        result[currentIndex] = tolower(result[u]);
        currentIndex++;
    }
    cout << result[u] << endl;
}
int currentIndex=0;
对于(int u=0;u您只需要“忽略”空格,如下所示:

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

对于(int u=0;u那么,如果您尝试了ISPACE,请删除什么?如果使用得当,它们确实有效

#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); });
#包括
#包括
结果长度=标准::距离(
标准::开始(结果),
std::删除_if(std::开始(结果),
标准::前进(标准::开始(结果),结果长度),
[](字符c){返回isspace(c);});
std::transform(std::begin(c)、std::advance(std::begin(result)、resultLength),
[](字符c){return std::tolower(c);});

那么,如果您尝试了ISPACE
代码,请删除什么?如果使用得当,它们确实有效

#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); });
#包括
#包括
结果长度=标准::距离(
标准::开始(结果),
std::删除_if(std::开始(结果),
标准::前进(标准::开始(结果),结果长度),
[](字符c){返回isspace(c);});
std::transform(std::begin(c)、std::advance(std::begin(result)、resultLength),
[](字符c){return std::tolower(c);});

for(int u=0,int i=0;u
for(int u=0,int i=0;u到底是什么问题?你想知道如何检查字符是否是空格符号?@singeroffall我想检查字符是否是空格符号,如果是,请不要将其存储在字符数组中。可能
到底是什么问题?你想知道如何检查字符是否是空格符号?@SingerOfTheFall我想检查字符是否是空格符号,如果是,则不要将其存储在字符数组中。可能
他将字符串的长度作为变量,因此
std::end
不是usable@MattMcNabb:啊,谢谢-我读到了关于
remove\u if
的失败尝试,并且没有查看当前代码,因此e OP可能在应用我的建议时遇到问题。已编辑。干杯。他将字符串的长度作为变量,因此
std::end
不是usable@MattMcNabb:啊,谢谢-我读到了关于
remove\u if
的失败尝试,并且没有查看当前代码,因此OP可能无法应用我的建议。已编辑。Cheers.一个关键点是正确调整
结果
缓冲区的大小。OP可能需要一些这方面的建议:)谢谢。请注意,结果器需要用fill初始化(结果器,结果器+100,'0')如果我的答案是有帮助的,那么你可以考虑接受它来帮助将来有类似问题的人。一个症结是正确地调整<代码>结果缓冲区。谢谢。只是一个注释,需要用填充来初始化字母(结果字母,结果字母+ 100,‘0’);为了得到正确的值。如果我的答案是有用的,那么你可以考虑接受它来帮助将来有类似问题的人。