我有可能输入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;
}
答案 0 :(得分: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] ;
}
请注意,这只是考虑你输出字符串。否则,您可以创建另一个字符串并将两者相加或连接现有字符串。
答案 1 :(得分:0)
这是家庭作业吗?如果没有,这就是我的建议。 (我问作业,因为你可能有限制,不是因为我们不在这里帮忙)
1)在你的字符串中找到'M'(使用find
),在该位置插入一个'\ 0'(如果找到一个)(顺便说一下,我假设你输入格式正确)< / p>
2)在'Y'上找一个。如果找到一个,在该位置插入'\ 0'。然后对你的字符串进行atoi()或stringstream转换以转换为数字。乘以12。
3)将第1部分或第2部分的字符串表示连接到somestr
4)输出。
这可以在&lt; 10行,如果我可以打扰。 a.find('M')部分及其检查可以是条件运算符,然后转换/连接最多为两行或三行。