-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

第二个字符串作为一个整体获得输出。所以它的输出没有变化。只要遇到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] ;
}

请注意,这是考虑到您只是输出字符串。否则,您可以创建另一个字符串并将两个字符串相加或连接现有字符串。

于 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') 部分及其检查可以是条件运算符,然后最多两行或三行进行转换/连接。

于 2012-09-25T16:12:12.743 回答