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;ufor(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’);为了得到正确的值。如果我的答案是有用的,那么你可以考虑接受它来帮助将来有类似问题的人。