查找并删除给定数字的数字

时间:2012-06-28 20:02:54

标签: c++

例如,用户输入数字542035。应用程序必须从给定数字中删除所有50并打印423。想不通,简单的方法来写一些像“查找和删除”所有0和5的数字?有什么建议吗?

3 个答案:

答案 0 :(得分:5)

将数字转换为字符串,执行替换(用“”替换数字),显示结果。

答案 1 :(得分:0)

以下是使用C ++ 11的示例。

注意:如果这是一个家庭作业问题,这可能老师正在寻找的答案,尽管它是惯用的。

#include <string>
#include <algorithm>
#include <iostream>

int main()
{
   std::string s("542035");

   std::cout << "Input: " << s << "\n";

   auto new_end = std::remove_if(
      s.begin(),
      s.end(),
      [] (const char c) -> bool
   {
      switch(c)
      {
      case '5':
      case '0':
         return true;
      default:
         return false;
      }
   });

   s.assign(s.begin(), new_end);

   std::cout << "Result: " << s << "\n";
}

答案 2 :(得分:0)

此代码似乎对我有用。我不确定它是否是最好的解决方案。

#include <iostream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;

int main()
{
int userinput;

cin >> userinput;

string s;

stringstream out;

out << userinput;

s = out.str();

cout << s << " " << userinput << endl;

vector<char> editted;

string::iterator it;

for (it = s.begin() ; it < s.end(); it++ )
{
if ((*it) == '5' || (*it) == '0')
{}
else 
editted.push_back((*it));
}

for (int i = 0; i <editted.size(); i++)
{
cout << editted[i] << endl;
} 

return 0;
}