如何从字符串中删除字符并在需要时更改数据?

时间:2012-09-25 15:57:22

标签: c++ stl

我有可能输入1M 2M .. 11M和1Y(M和Y代表几个月),我想输出“somestring1 somestring2 ....和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;
}

2 个答案:

答案 0 :(得分:2)

第二个字符串是整体输出。所以输出没有变化。 只要遇到MY,就会输出第二个字符串。由于Stack Overflow不鼓励提供确切的源代码,所以我可以给你一些部分。有一个条件要由你决定。(第二个答案也给出了) 代码有点像这样。

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

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

答案 1 :(得分:0)

这是家庭作业吗?如果没有,这就是我的建议。 (我问作业,因为你可能有限制,不是因为我们不在这里帮忙)

1)在你的字符串中找到'M'(使用find),在该位置插入一个'\ 0'(如果找到一个)(顺便说一下,我假设你输入格式正确)< / p>

2)在'Y'上找一个。如果找到一个,在该位置插入'\ 0'。然后对你的字符串进行atoi()或stringstream转换以转换为数字。乘以12。

3)将第1部分或第2部分的字符串表示连接到somestr

4)输出。

这可以在&lt; 10行,如果我可以打扰。 a.find('M')部分及其检查可以是条件运算符,然后转换/连接最多为两行或三行。