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

2 に答える 2

2

2番目の文字列は、全体として出力を取得しています。したがって、出力に変更はありません。M2番目の文字列は、またはが検出される限り出力されYます。正確なソースコードを提供することをお勧めしませんので、そのStack Overflow一部をお伝えします。配置する条件がありますが、それはあなた次第です。(2番目の答えもそれを示しています)コードはこのようになります。

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

また、これは文字列を出力することを考慮していることに注意してください。それ以外の場合は、別の文字列を作成して2つを合計するか、既存の文字列を連結することができます。

于 2012-09-25T16:13:17.157 に答える
0

これは宿題ですか?そうでない場合は、これが私が提案することです。(私たちはあなたが制限を持っているかもしれないので宿題について尋ねます、私たちが助けるためにここにいないからではありません)

1)文字列内の「M」を(を使用してfind)検索し、見つかった場合はその位置に「\ 0」を挿入します(ただし、適切にフォーマットされた入力があると想定しています)

2)「Y」を検索します。見つかった場合は、その位置に「\0」を挿入します。次に、文字列に対してatoi()またはstringstream変換を実行して、数値に変換します。12を掛けます。

3)パート1またはパート2の文字列表現をsomestrに連結します

4)出力。

気になる場合は、これはおそらく10行未満で実行できます。a.find('M')部分とそのチェックは条件付き演算子であり、変換/連結は最大で2行または3行です。

于 2012-09-25T16:12:12.743 に答える