C++ string类的find()函数怎么用

假设我定义了一个string类如下string str("asdfggef");应该怎么调用find的函数,是不是这样,str.find("asdf").如果说要find的字串不在str里面,该函数会返回什么??str.find("asdf"); 的返回值是什么.str.find("...."); 的返回值又是什么???

查找(find)
语法:
size_type find( const basic_string &str, size_type index );
size_type find( const char *str, size_type index );
size_type find( const char *str, size_type index, size_type length );
size_type find( char ch, size_type index );

find()函数:

返回str在字符串中第一次出现的位置(从index开始查找)。如果没找到则返回string::npos,
返回str在字符串中第一次出现的位置(从index开始查找,长度为length)。如果没找到就返回string::npos,
返回字符ch在字符串中第一次出现的位置(从index开始查找)。如果没找到就返回string::npos
例如,

string str1( "Alpha Beta Gamma Delta" );
unsigned int loc = str1.find( "Omega", 0 );
if( loc != string::npos )
cout << "Found Omega at " << loc << endl;
else
cout << "Didn't find Omega" << endl;
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-13
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str="01234567890000";
int a;
a=str.find("0");
cout<<a<<endl;//返回0
a=str.find("123");
cout<<a<<endl;//返回1
a=str.find("456");
cout<<a<<endl;//返回4
system("Pause");
return 0;
}

查到第一个就返回,不管以后有几个,字符串就返回第一个字符的位置,从0开始数,运行下会更清楚
第2个回答  2012-02-13
返回的是要查找串在目标串中的索引位置,从0开始计数,找不到返回-1
第3个回答  2015-09-30
第4个回答  2015-11-03
string类的查找函数:
int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置
int find(const char *s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置
int find(const char *s, int pos, int n) const;//从pos开始查找字符串s中前n个字符在当前串中的位置
int find(const string &s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置
//查找成功时返回所在位置,失败返回string::npos的值
int rfind(char c, int pos = npos) const;//从pos开始从后向前查找字符c在当前串中的位置
int rfind(const char *s, int pos = npos) const;
int rfind(const char *s, int pos, int n = npos) const;
int rfind(const string &s,int pos = npos) const;
//从pos开始从后向前查找字符串s中前n个字符组成的字符串在当前串中的位置,成功返回所在位置,失败时返回string::npos的值
int find_first_of(char c, int pos = 0) const;//从pos开始查找字符c第一次出现的位置
int find_first_of(const char *s, int pos = 0) const;
int find_first_of(const char *s, int pos, int n) const;
int find_first_of(const string &s,int pos = 0) const;
//从pos开始查找当前串中第一个在s的前n个字符组成的数组里的字符的位置。查找失败返回string::npos
int find_first_not_of(char c, int pos = 0) const;
int find_first_not_of(const char *s, int pos = 0) const;
int find_first_not_of(const char *s, int pos,int n) const;
int find_first_not_of(const string &s,int pos = 0) const;
//从当前串中查找第一个不在串s中的字符出现的位置,失败返回string::npos
int find_last_of(char c, int pos = npos) const;
int find_last_of(const char *s, int pos = npos) const;
int find_last_of(const char *s, int pos, int n = npos) const;
int find_last_of(const string &s,int pos = npos) const;
int find_last_not_of(char c, int pos = npos) const;
int find_last_not_of(const char *s, int pos = npos) const;
int find_last_not_of(const char *s, int pos, int n) const;
int find_last_not_of(const string &s,int pos = npos) const;
//find_last_of和find_last_not_of与find_first_of和find_first_not_of相似,只不过是从后向前查找

C++ string类的find()函数怎么用
find()函数:返回str在字符串中第一次出现的位置(从index开始查找)。如果没找到则返回string::npos,返回str在字符串中第一次出现的位置(从index开始查找,长度为length)。如果没找到就返回string::npos,返回字符ch在字符串中第一次出现的位置(从index开始查找)。如果没找到就返回string::npos 例如,...

C++ string类的find()函数怎么用
如果说要find的字串不在str里面,该函数会返回string::npos,即-1。str.find("..."); 的返回值,不明白,应该也是一样。str.find("asdf"); 的返回值应该是0,即在str中的index位置。 found=str.find(str2);\/\/found是str2在str中第一次出现的位置,找不到返回string::npos,即-1。

C++ string类的find函数怎么用
using namespace std;int main(){ string str;cout<<"Please Input a string:"<<endl;cin>>str;size_t idx=str.find('c');cout<<idx<<endl;system("pause");return 0;}

c++中 string 类的find函数的用法
int find_first_not_of(const char *s, int pos,int n) const;int find_first_not_of(const string &s,int pos = 0) const;\/\/从当前串中查找第一个不在串s中的字符出现的位置,失败返回string::npos int find_last_of(char c, int pos = npos) const;int find_last_of(const char ...

C++ ***.find()
C++标准库中的`string`类提供了多种查找函数,帮助我们在字符串中定位特定字符或子串。这些函数包括`find()`系列和`rfind()`系列,以及`find_first_of()`和`find_first_not_of()`。`find()`函数从指定位置开始查找,寻找字符或子串,返回首次出现的位置,若未找到则返回`string::npos`。`rfind(...

c++如何用find()函数将一个string类型的字符串分成两个string类型的
方法:先找到空格所在位置,然后截取string(从第几个字符,到第几个字符)。逆向找位置:示例:string strPath = "D:\/\/x\/y\/z\/0.exe";string strDir;int nPos = strPath.find_last_of('\/');if (string::npos != nPos){ strDir = strPath.substr(0, nPos);}正向找位置:string str...

关于stringfind的用法
StringFind函数是一个用于字符串搜索的功能,主要用于查找一个字符串中是否包含特定的子字符串或字符。在许多编程语言中,如C++、Python等,都有类似的函数或方法。具体用法:1. 函数调用:在编程时,你会通过特定的语法来调用StringFind函数。例如,在某些语言中,你可以直接使用字符串对象的内置方法来实现...

C++中Find函数如何使用?请举例子,我是菜鸟,不要说得太复杂
1、第一步,使用gui创建一个项目,见下图,转到下面的步骤。2、第二步,完成上述步骤后,打开设计界面,并添加label以显示操作结果,见下图,转到下面的步骤。3、第三步,完成上述步骤后,定义一个类,该类的名称系统称为Test。 创建类的方法是通过右键单击项目来添加新文件。 相应的类名称也可以使用...

c++在一个字符串中查找是否包含另一个字符串,如果有则返回第一次出现...
您可以使用 C++ 中的 std::string::find() 函数来实现这个功能。您可以这样做:include <iostream> include <string> int main() { std::string str1 = "Hello, world!";std::string str2 = "world";\/\/ 使用 std::string::find() 查找 str2 是否在 str1 中出现 \/\/ 如果找到了,则...

C++string的查找,find()函数有关问题
int pos = npos) const;int rfind(const string &s,int pos = npos) const;你的第一个从 第10个符号开始,向前找 "make" ,因为没有,所以直接返回 -1 你的第二个从 第40个符号开始, 向前找"make" ,返回 15 你的第三个从 整个字符串的最想向前找 "day",所以返回 3 挺正常的 ...

相似回答