2012-09-25 2 views
-1

가능한 입력 1M 2M .. 11M 및 1Y (M 및 Y는 몇 개월 동안 나타남) 출력하고 싶습니다. "somestring1 somestring2 .... and somestring12"노트 M과 Y가 제거되고 마지막 문자열이 12로 변경됩니다.문자열에서 문자를 제거하고 필요하면 데이터를 변경하는 방법은 무엇입니까?

Example: input "11M" "hello" output: hello11 
      input "1Y" "hello" output: hello1 



char * (const char * date, const char * somestr) 
{ 
    // just need to output final string no need to change the original string 
    cout<< finalStr<<endl; 
} 
+3

음, 뭐가 문제입니까? –

+4

질문이 너무 명확하지 않습니다. 조금 더 설명 할 수 있습니까 –

+0

입력 및 예상 출력의 예를 제공하십시오. – Dialecticus

답변

0

이 숙제입니까? 그렇지 않다면, 제가 제안 할 것이 있습니다. (우리가 도와 줄 수 없기 때문에 제한이있을 수 있으므로 숙제에 관해서 물어 봅니다.)

1) 문자열에서 'M'을 찾아 (find을 사용하여) '\ 0'을 삽입하십시오 위치가 발견되면 위치를 지정하십시오. (btw는 입력 형식이 잘되어 있다고 가정합니다)

2) 'Y'에서 찾기를 수행하십시오. 발견되면 해당 위치에 '\ 0'을 삽입하십시오. 그런 다음 문자열에 atoi() 또는 stringstream 변환을 수행하여 숫자로 변환하십시오. 12.

3)하여 somestr

4)의 출력에 제 1 또는 제 2의 사용자의 스트링 표현을 연결 곱한다.

나는 괴롭힐 수있는 경우 아마도 < 10 줄에서 할 수 있습니다. a.find ('M') 부분과 해당 검사는 조건부 연산자가 될 수 있으며 최대 2 ~ 3 줄의 변환/연결이 가능합니다.

2

두 번째 문자열이 전체적으로 출력되고 있습니다. 따라서 출력에 변화가 없습니다. 두 번째 문자열은 M 또는 Y이 출력되는 한 출력됩니다. Stack Overflow은 정확한 소스 코드를 제공하지 않으므로 일부를 제공 할 수 있습니다. 알아낼 수있는 조건이 있습니다. (두 번째 대답도 마찬가지입니다.) 코드는 다소 비슷합니다.

//Code for first string. Just for output. 
for (auto i = 0 ; date[i] != '\0' ; ++i) 
{ 
    // A condition comes here. 
    cout << date[i] ; 
} 

그리고이 문자열을 출력하는 것으로 간주됩니다. 그렇지 않으면 다른 문자열을 만들고 두 문자열을 더하거나 기존 문자열을 연결합니다.

관련 문제