我知道方法strchr
,它在字符数组中找到第一个出现的任何字符。但是如何在字符串中找到第一个出现的字符?
更具体地说,我想要任何方法来做到这一点 - >
john.smith@codeforces.ru/contest.icpc/12
在搜索@
时,它应该给出10并且在搜索/
时应该给出25而不是38。
答案 0 :(得分:4)
使用std::string::find(char c)
:
std::string a = "john.smith@codeforces.ru/contest.icpc/12";
cout << a.find('.') << endl; //4
cout << a.find('/') << endl; //24
答案 1 :(得分:1)
您的朋友是std::string::find_first_of()
std::string str("john.smith@codeforces.ru/contest.icpc/12");
str.find_first_of("@"); // returns 10
str.find_first_of("@/"); // returns 10
str.find_first_of("/"); // returns 24 .. or so
答案 2 :(得分:1)
对于您显示的字符串,您希望字符串中的字符'/'
得到结果,您应该使用表达式,因为它们写在下面的程序中
#include <iostream>
#include <string>
int main()
{
std::string s = "john.smith@codeforces.ru/contest.icpc/12";
std::cout << s.find( '/' ) + 1 << std::endl;
std::cout << s.rfind( '/' ) + 1 << std::endl;
}
程序输出
25
38
考虑到该职位从0开始。
否则只使用s.find()
和/或s.rfind()
。