我写过小代码:
#include <iostream>
using namespace std;
int main()
{
string str = "hello world";
for(int i = 0; i < str.size(); i++)
{
if(str[i] == ' ')
// WHAT?
}
system("pause");
return 0;
}
如何在空格后显示结果?
示例:&#34; hello world n#34;
答案:&#34;世界&#34;
感谢。
答案 0 :(得分:4)
std::string::find
string str = "hello world";
auto n = str.find(" "); // std::string::size_type n =
if (n != std::string::npos )
{
std::cout << str.substr( n+1 );
}
答案 1 :(得分:3)
#include <iostream>
using namespace std;
int main()
{
string str = "hello world";
size_t len = str.size();
size_t space;
if ((space = str.find(' ')) != string::npos) {
cout << str.substr(space + 1, len-space) << '\n';
}
return 0;
}
当字符串中没有(在此示例中)空格字符时,npos
方法返回 find()
。如果找到了,则使用substr()
方法以便在空格后获取字符串的一部分。
答案 2 :(得分:2)
试试这个:
#include <iostream>
#include <string>
using namespace std;
int main() {
// your code goes here
string str = "hello world";
cout << str.substr( str.find(' ') + 1, string::npos );
return 0;
}
我使用std::string
方法find()
和substr()
。
find()
返回空格出现的位置/位置(&#39;&#39;),然后传递给substr()
,从该位置开始返回string
直到最后。
如果您注意到substr()
的第一个参数,它比find()
返回的参数多1个。这是因为你想在空间后打印任何,而且不得包含空间本身!因此,添加1指向空格后的字符。