字符串中字符的首次出现
First occurence of a character in string
我知道strchr
的方法,它可以在字符数组中首次出现任何字符。但是如何找到字符串中任何字符的第一次出现?
更具体地说,我想要任何方法来做到这一点 ->
john.smith@codeforces.ru/contest.icpc/12
在搜索@
时,它应该给出 10,在搜索/
时它应该给出 25 而不是 38。
使用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
你的朋友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
对于您显示的字符串以获得您期望的字符串中的字符'/'
结果,您应该使用下面程序中编写的表达式
#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()
。
相关文章:
- 从 argv[1] 转换为字符 * 字符串后有什么问题?
- 将 NULL 与 C 的字符* 字符串一起使用
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- 无法将常量字符字符串传递给模板类
- 如何组合一个宽字符字符串,中间插入一些空字符
- 如何将二维数组类型字符(字符串)作为函数参数传递?
- 从给定索引返回子字符字符串的函数
- 字符 [](c 字符串)的初始化标准
- 如何将字符字符串用作数学运算符
- 将 Unicode 字符/字符串写入文件
- C++,字符* 字符串修改
- 如何有效地用不同的整数元素替换字符字符串的元素
- C++:如果我们在字符串中添加一些整数,为什么它会从开头删除该数量的字符?(字符串 + 整数)
- strcpy正在复制sth字符i字符串.如何解决此错误
- 在C++中将双精度转换为字符*/字符串
- C 中的宽字符字符串
- 如何提取C 中的字符/字符串之间的字符串
- 无法将字符/字符串转换为int
- 带有指针的反转字符字符串
- 反转字符串中的 n 个字符(字符串中没有空格),而不使用 c++ 中的内置函数