C++ 在字符串C+中查找字符位置+;

C++ 在字符串C+中查找字符位置+;,c++,string,C++,String,如何找到字符串中字符的位置?例如,如果我输入“abc*ab”,我想用“abc”创建一个新字符串。你能帮我解决我的问题吗?std::find返回一个迭代器到它找到的第一个元素,该元素与你要查找的元素相比较(如果第二个参数没有找到任何东西,则返回结束迭代器)。你可以使用迭代器构造一个std::string #include <iostream> #include <string> #include <algorithm> int main() { std

如何找到字符串中字符的位置?例如,如果我输入“abc*ab”,我想用“abc”创建一个新字符串。你能帮我解决我的问题吗?

std::find
返回一个迭代器到它找到的第一个元素,该元素与你要查找的元素相比较(如果第二个参数没有找到任何东西,则返回结束迭代器)。你可以使用迭代器构造一个
std::string

#include <iostream>
#include <string>
#include <algorithm>

int main()
{
    std::string s = "abc*ab";
    std::string s2(s.begin(), std::find(s.begin(), s.end(), '*'));
    std::cout << s2;
    return 0;
}
#包括
#包括
#包括
int main()
{
std::string s=“abc*ab”;
std::string s2(s.begin(),std::find(s.begin(),s.end(),'*');

std::coutC++标准字符串提供了一种
find
方法:

s.find(c)
如果字符根本不存在,则将字符
c
的第一个实例的位置返回到字符串
s
std::string::npos
。您还可以传递搜索的起始索引;即

s.find(c, x0)

将返回字符
c
的第一个索引,但从位置开始搜索
x0

如果使用
std::string
类型,则使用
std::find
算法很容易找到字符的位置,如下所示:

#include <string>
#include <algorithm>
#include <iostream>

using namespace std;

int main()
{
    string first_string = "abc*ab";
    string truncated_string = string( first_string.cbegin(), find( first_string.cbegin(), first_string.cend(), '*' ) );

    cout << truncated_string << endl;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
第一个字符串\u string=“abc*ab”;
string truncated_string=string(first_string.cbegin(),find(first_string.cbegin(),first_string.cend(),'*');
库特