我使用" using namespace std
;"在我用C ++进行的整个学习中,所以基本上我不理解像std :: out这样的东西,请帮帮我。让我说我有一个如下所示的代码,我希望这两个字符串是相同的当我比较它们时。
int main(void)
{
using namespace std;
char a[10] = "123 ";
char b[10] = "123";
if(strcmp(a,b)==0)
{cout << "same";}
return 0;
}
答案 0 :(得分:0)
使用正则表达式\\s+
匹配所有空格字符并使用regex_replace
将其删除
#include <iostream>
#include <regex>
#include <string>
int main()
{
std::string text = "Quick brown fox";
std::regex spaces("\\s+");
// construct a string holding the results
std::string result = std::regex_replace(text, spaces, "");
std::cout << '\n' << text << '\n';
std::cout << '\n' << result << '\n';
}
答案 1 :(得分:0)
如果使用std :: string而不是char,则可以使用boost中的截断函数。
答案 2 :(得分:0)
使用std::string
执行此操作
std::string a("123 ");
std::string b("123");
a.erase(std::remove_if(a.begin(), a.end(), ::isspace), a.end());
if (a == b)
std::cout << "Same";
using
之间的差异将是
using namespace std;
string a("123 ");
string b("123");
a.erase(remove_if(a.begin(), a.end(), ::isspace), a.end());
if (a == b)
cout << "Same";
通常建议不要使用using namespace std
。不要忘记包含<string>
和<algorithm>
。
编辑如果您仍想以C方式执行此操作,请使用此帖子中的功能
https://stackoverflow.com/a/1726321/2425366
void RemoveSpaces(char * source) {
char * i = source, * j = source;
while (*j != 0) {
*i = *j++;
if (*i != ' ') i++;
}
*i = 0;
}