2012-06-28 3 views
-3

예를 들어, 사용자는 542035 자릿수를 입력합니다. 응용 프로그램은 5 및 주어진 숫자의 0을 모두 자르고 423을 인쇄해야합니다. 숫자에서 모든 0과 5를 "찾아서 제거"하는 것과 같은 간단한 방법을 알아낼 수 없습니까? 어떤 제안?주어진 숫자에서 숫자 찾기 및 제거

+1

문자열로 변환하여 거기에서 이동할 수 있습니다. – chris

+1

사용자가 번호를 입력했다고 했으므로 이미 문자열로 입력해야합니다. 'std :: string'과'std :: remove_if'를 살펴보십시오. 이 숙제가 있니? – Chad

답변

5

숫자를 문자열로 변환하고 바꾸기 (숫자를 ""로 대체)하여 결과를 표시하십시오.

+0

몇 가지 예제 코드를 작성할 수 있습니까? – heron

+5

@epic_syntax : 가능합니다. 숫자를 문자열로 변환하고 C에서 대체를 수행하는 방법을 모르십니까? 그것들은 꽤 기본적인 개념이고 인터넷에 이미 많은 예제가 있습니다. –

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"; 
} 
+0

나는 이것을 숙제로 제출하기 전에 trice를 생각할 것입니다. – Azuan

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; 
}