C++ 中string.find() 函数的用法总结
2013-12-22 20:33
453 查看
本文章转载自:http://blog.csdn.net/yushuai007008/article/details/7051385
#include<string>
#include<iostream>
usingnamespacestd;
voidmain()
{
[cpp]
viewplaincopyprint?
////find函数返回类型size_type
strings("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");
stringflag;
string::size_typeposition;
//find函数返回jk在s中的下标位置
position=s.find("jk");
if(position!=s.npos)//如果没找到,返回一个特别的标志c++中用npos表示,我这里npos取值是4294967295,
{
cout<<"positionis:"<<position<<endl;
}
else
{
cout<<"Notfoundtheflag"+flag;
}
[cpp]
viewplaincopyprint?
//find函数返回flag中任意字符在s中第一次出现的下标位置
flag="c";
position=s.find_first_of(flag);
cout<<"s.find_first_of(flag)is:"<<position<<endl;
[cpp]
viewplaincopyprint?
//从字符串s下标5开始,查找字符串b,返回b在s中的下标
position=s.find("b",5);
cout<<"s.find(b,5)is:"<<position<<endl;
[cpp]
viewplaincopyprint?
//查找s中flag出现的所有位置。
flag="a";
position=0;
inti=1;
while((position=s.find_first_of(flag,position))!=string::npos)
{
//position=s.find_first_of(flag,position);
cout<<"position"<<i<<":"<<position<<endl;
position++;
i++;
}
[cpp]
viewplaincopyprint?
[cpp]
viewplaincopyprint?
//查找flag中与s第一个不匹配的位置
flag="acb12389efgxyz789";
position=flag.find_first_not_of(s);
cout<<"flag.find_first_not_of(s):"<<position<<endl;
[cpp]
viewplaincopyprint?
[cpp]
viewplaincopyprint?
//反向查找,flag在s中最后出现的位置
flag="3";
position=s.rfind(flag);
cout<<"s.rfind(flag):"<<position<<endl;
}
说明:
1.如果stringsub=”abc“;
strings=”cdeabcigld“;
s.find(sub),s.rfind(sub)这两个函数,如果完全匹配,才返回匹配的索引,即:当s中含有abc三个连续的字母时,才返回当前索引。
s.find_first_of(sub),s.find_first_not_of(sub),s.find_last_of(sub),s.find_last_not_of(sub)这四个函数,查找s中含有sub中任意字母的索引。
2.如果没有查询到,则返回string::npos,这是一个很大的数,其值不需要知道。
#include<string>
#include<iostream>
usingnamespacestd;
voidmain()
{
[cpp]
viewplain
////find函数返回类型size_type
strings("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");
stringflag;
string::size_typeposition;
//find函数返回jk在s中的下标位置
position=s.find("jk");
if(position!=s.npos)//如果没找到,返回一个特别的标志c++中用npos表示,我这里npos取值是4294967295,
{
cout<<"positionis:"<<position<<endl;
}
else
{
cout<<"Notfoundtheflag"+flag;
}
////find函数返回类型size_type strings("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i"); stringflag; string::size_typeposition; //find函数返回jk在s中的下标位置 position=s.find("jk"); if(position!=s.npos)//如果没找到,返回一个特别的标志c++中用npos表示,我这里npos取值是4294967295, { cout<<"positionis:"<<position<<endl; } else { cout<<"Notfoundtheflag"+flag; }
[cpp]
viewplain
//find函数返回flag中任意字符在s中第一次出现的下标位置
flag="c";
position=s.find_first_of(flag);
cout<<"s.find_first_of(flag)is:"<<position<<endl;
//find函数返回flag中任意字符在s中第一次出现的下标位置 flag="c"; position=s.find_first_of(flag); cout<<"s.find_first_of(flag)is:"<<position<<endl;
[cpp]
viewplain
//从字符串s下标5开始,查找字符串b,返回b在s中的下标
position=s.find("b",5);
cout<<"s.find(b,5)is:"<<position<<endl;
//从字符串s下标5开始,查找字符串b,返回b在s中的下标 position=s.find("b",5); cout<<"s.find(b,5)is:"<<position<<endl;
[cpp]
viewplain
//查找s中flag出现的所有位置。
flag="a";
position=0;
inti=1;
while((position=s.find_first_of(flag,position))!=string::npos)
{
//position=s.find_first_of(flag,position);
cout<<"position"<<i<<":"<<position<<endl;
position++;
i++;
}
//查找s中flag出现的所有位置。 flag="a"; position=0; inti=1; while((position=s.find_first_of(flag,position))!=string::npos) { //position=s.find_first_of(flag,position); cout<<"position"<<i<<":"<<position<<endl; position++; i++; }
[cpp]
viewplain
[cpp]
viewplain
//查找flag中与s第一个不匹配的位置
flag="acb12389efgxyz789";
position=flag.find_first_not_of(s);
cout<<"flag.find_first_not_of(s):"<<position<<endl;
//查找flag中与s第一个不匹配的位置
flag="acb12389efgxyz789";
position=flag.find_first_not_of(s);
cout<<"flag.find_first_not_of(s):"<<position<<endl;
[cpp]
viewplain
[cpp]
viewplain
//反向查找,flag在s中最后出现的位置
flag="3";
position=s.rfind(flag);
cout<<"s.rfind(flag):"<<position<<endl;
}
//反向查找,flag在s中最后出现的位置
flag="3";
position=s.rfind(flag);
cout<<"s.rfind(flag):"<<position<<endl;
}
说明:
1.如果stringsub=”abc“;
strings=”cdeabcigld“;
s.find(sub),s.rfind(sub)这两个函数,如果完全匹配,才返回匹配的索引,即:当s中含有abc三个连续的字母时,才返回当前索引。
s.find_first_of(sub),s.find_first_not_of(sub),s.find_last_of(sub),s.find_last_not_of(sub)这四个函数,查找s中含有sub中任意字母的索引。
2.如果没有查询到,则返回string::npos,这是一个很大的数,其值不需要知道。
相关文章推荐
- C++ 中string.find() 函数的用法总结(转载)
- C++ 中string.find() 函数的用法总结(转载)
- C++ 中string.find() 函数的用法总结(转载)
- C++ 中string.find() 函数的用法总结
- C++ 中string.find() 函数的用法总结
- C++ 中string.find() 函数的用法总结
- C++ 中string.find() 函数的用法总结(转载)
- C++ 中string.find() 函数的用法总结
- C++ 中string.find() 函数的用法总结(转载)
- C++ 中string.find() 函数的用法总结(转载)
- C++ 中string.find() 函数的用法总结[转]
- C++ 中string.find() 函数的用法总结
- C++ 中string.find() 函数的用法总结
- C++ 中string.find() 函数的用法总结
- C++ 中string.find() 函数的用法总结(转载)
- C++ 中string.find() 函数的用法总结(转载)
- C++ 中string.find() 函数的用法总结
- C++ 中string.find() 函数的用法总结
- C++ 中string.find() 函数的用法总结(转载)
- C++ 中string.find() 函数的用法总结(转载)