C++ string 字符串查找函数

在写C++程序中,总会遇到要从一个字符串中查找一小段子字符串的情况,对于在C中,我们经常用到strstr()或者strchr()这两种方法。而对于C++的string,我们往往会用到find()。

C++:#inlcude<string>

C: #include<string.h>

find():在一个字符串中查找一个指定的单个字符或字符数组。如果找到,就返回首次匹配的开始位置;如果没有查找到匹配的内容,就返回string::npos。

find_first_of():在一个目标串中进行查找,返回值是第一个与指定字符组中任何字符匹配的字符位置。如果没有查找到匹配的内容,则返回npos。

find_last_of():在一个目标串中进行查找,返回最后一个与指定字符组中任何字符匹配的字符位置。如果没有查找到匹配的内容,则返回npos。

find_first_not_of():在一个目标串中进行查找,返回第一个与指定字符组中任何字符都不匹配的元素位置。如果找不到那样的元素则返回npos。

find_last_not_of():在一个目标串中进行查找,返回下标值最大的与指定字符组中任何字符都不匹配的元素的位置。若找不到那样的元素则返回npos。

rfind():对一个串从尾至头查找一个指定的单个字符或字符组。如果找到,就返回首次匹配的开始位置;如果没有查找到匹配的内容,则返回npos。

find(string, int):第一个参数用来指示要查找的字符,第二个参数用来表示从字符串的何处开始查找子串(默认的查找位置是0)。

举例:字符串匹配:

 代码如下 复制代码

#include "stdafx.h"

#include<iostream>

#include<math.h>

#include<string>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

string T;//原串

string P;//模式

while(cin>>T>>P)

{

int count=0;

int begin=-1;

while((begin=T.find(P,begin+1))!=string::npos)

{

count++;

}

cout<<count<<endl;

}

int z;

cin>>z;

return 0;

}

运行结果为:

The string to search is 'Heartbeat'
Element in 'abcde' found at position 1
Element in 'abcde' found at position 2
Element in 'aeiou' found at position 6
Element in 'aeiou' found at position 1
'e' found at position 6

例子

 代码如下 复制代码

#include<iostream>
#include<string>

using namespace std;

int main()
{
 string s = "**Gteate Wall**!";
 string t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
 cout<<"s: "<<s<<endl;
 cout<<"t: "<<t<<endl;

 int first=s.find_first_of(t);

 if(first == string::npos){
  cout<<"s中所有字符均不在t中"<<endl;
 }else {
  cout<<"s中出现在t中的字符的第一个字符:"<<s[first]<<endl;
 }

 int last = s.find_last_of(t);
 if(last == string::npos){
  cout<<"s中所有字符均不在t中"<<endl;
  return 1;
 }else {
  cout<<"s中出现在t的字符的最后一个字符:"<<s[last]<<endl;
  return 1;
 }

}

查找

string str;
cin >> str;

str.find("ab");//返回字符串 ab 在 str 的位置
str.find("ab", 2);//在 str[2]~str[n-1] 范围内查找并返回字符串 ab 在 str 的位置
str.rfind("ab", 2);//在 str[0]~str[2] 范围内查找并返回字符串 ab 在 str 的位置

//first 系列函数
str.find_first_of("apple");//返回 apple 中任何一个字符首次在 str 中出现的位置
str.find_first_of("apple", 2);//返回 apple 中任何一个字符首次在 str[2]~str[n-1] 范围中出现的位置
str.find_first_not_of("apple");//返回除 apple 以外的任何一个字符在 str 中首次出现的位置
str.find_first_not_of("apple", 2);//返回除 apple 以外的任何一个字符在 str[2]~str[n-1] 范围中首次出现的位置

//last 系列函数
str.find_last_of("apple");//返回 apple 中任何一个字符最后一次在 str 中出现的位置
str.find_last_of("apple", 2);//返回 apple 中任何一个字符最后一次在 str[0]~str[2] 范围中出现的位置
str.find_last_not_of("apple");//返回除 apple 以外的任何一个字符在 str 中最后一次出现的位置
str.find_last_not_of("apple", 2);//返回除 apple 以外的任何一个字符在 str[0]~str[2] 范围中最后一次出现的位置

//以上函数如果没有找到,均返回string::npos
cout << string::npos;

时间: 2024-09-23 20:50:11

C++ string 字符串查找函数的相关文章

sql 字符串查找函数

拼串的时候用char(39) 代替单引号,char(37)代替% set @sql = 'select * from authors where address like '+char(39)+char(37)+@str+char(37)+char(39) sql 字符串查找函数

C++ string 字符串查找匹配实例代码_C 语言

在写C++程序中,总会遇到要从一个字符串中查找一小段子字符串的情况,对于在C中,我们经常用到strstr()或者strchr()这两种方法.而对于C++的string,我们往往会用到find(). C++:#inlcude<string> C: #include<string.h> find():在一个字符串中查找一个指定的单个字符或字符数组.如果找到,就返回首次匹配的开始位置:如果没有查找到匹配的内容,就返回string::npos. find_first_of():在一个目标串

java indexOf() lastIndexOf() 字符串查找函数

利用indexOf()匹配字符串 返回 String 对象内第一次出现子字符串的字符位置. strObj.indexOf(subString[, startIndex]) 参数 strObj 必选项.String 对象或文字. subString 必选项.要在 String 对象中查找的子字符串. starIndex 可选项.该整数值指出在 String 对象内开始查找的索引.如果省略,则从字符串的开始处查找. 说明 indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位

java学习笔记之字符串查找函数

java中查找一个字符串是否包含一个字符,或者一段字符串java.lang.String indexOf方法  代码如下 复制代码 package com.java.lang;   public class StringX {    /**   * @param args   */  public static void main(String[] args) {   java.lang.String a = "my name is yuexiaosheng,my blog is java-er

sql instr()与LOCATE()字符串查找函数

INSTR(str,substr) 返回字符串 str 中子字符串的第一个出现位置.这和LOCATE()的双参数形式相同,除非参数的顺序被颠倒.   代码如下 复制代码 mysql> SELECT INSTR('foobarbar', 'bar');         -> 4 mysql> SELECT INSTR('xbar', 'foobar');         -> 0 LOCATE(substr,str) , LOCATE(substr,str,pos) 第一个语法返回字

PHP开发中常用的字符串操作函数

1,拼接字符串 拼接字符串是最常用到的字符串操作之一,在PHP中支持三种方式对字符串进行拼接操作,分别是圆点.分隔符{}操作,还有圆点等号.=来进行操作,圆点等号可以把一个比较长的字符串分解为几行进行定义,这样做是比较有好处的. 2,替换字符串 在PHP这门语言中,提供了一个名字叫做substr_replace()的函数,该函数的作用可以快速的完成扫描和编辑文本内容较多的字符串替换功能.他的语法格式: mixed substr_replace(mixed $string,string $repl

php字符串查找

1.strstr()函数: 该函数用于获取一个指定字符串在另一个字符串中首次出现的位置到末尾的子字符串.执行成功,返回获取的子字符串:执行失败,返回false. 语法: string strstr(string str1,string str2) 例: <?php $a="www.bianceng.cn"; $b="b"; echo strstr($a,$b); //输出bianceng.cn?> 2.substr_count()函数:查找子字符串出现的

PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)_php技巧

本文实例总结了PHP常用字符串操作函数.分享给大家供大家参考,具体如下: /*常用的字符串输出函数 * * echo() 输出字符串 * print() 输出一个或多个字符串 * die() 输出一条信息,并退出当前脚本 * printf() 输出格式化字符串 * sprintf() 把格式化的字符串写入到一个变量中 * */ //ucfirst //将字符串中的首字母转换为大写 $str="string"; echo ucfirst($str); echo "<hr&

PHP开发中常用的字符串操作函数_php技巧

1,拼接字符串 拼接字符串是最常用到的字符串操作之一,在PHP中支持三种方式对字符串进行拼接操作,分别是圆点.分隔符{}操作,还有圆点等号.=来进行操作,圆点等号可以把一个比较长的字符串分解为几行进行定义,这样做是比较有好处的. 2,替换字符串 在PHP这门语言中,提供了一个名字叫做substr_replace()的函数,该函数的作用可以快速的完成扫描和编辑文本内容较多的字符串替换功能.他的语法格式: mixed substr_replace(mixed $string,string $repl