情况是这样的,我不必知道角色在哪里,但只有在那里。我正在寻找一种可能集成的快速解决方案。提前谢谢!
我正在使用c ++ 11。
答案 0 :(得分:0)
以下函数会在找到字符后立即停止查找:
std::string str ("My string with: a");
if (str.find_first_of("a")!=std::string::npos)
{
return 1;
}
else
{
return 0;
}
答案 1 :(得分:-1)
如果您的意思是标准类std::string
,那么它有方法查找
例如
#include <iostream>
#include <string>
//...
std::string s( "123456789" );
auto n = s.find( '5' );
if ( n != std::string::npos )
{
std::cout << "character '5' found at position " << n << std::endl;
}
您可以使用此方法编写函数。例如
bool find_char( const std::string &s, char c )
{
return ( s.find( c ) != std::string::npos );
}
如果您希望函数返回1或0,则只需将其返回类型更改为int。
int find_char( const std::string &s, char c )
{
return ( s.find( c ) != std::string::npos );
}
如果您指的是字符数组,那么您可以使用标准算法std::find
或std::any_of
或标准C函数strchr
例如
#include <iostream>
#include <cstring>
//...
char s[] = "123456789";
char *p = std::strchr( s, '5' );
if ( p != nullptr )
{
std::cout << "character '5' found at position " << p - s << std::endl;
}
或者如果要使用算法std::find
,则代码看起来像
#include <iostream>
#include <algorithm>
#include <iterator>
//...
char s[] = "123456789";
char *p = std::find( std::begin( s ), std::end( s ), '5' );
if ( p != std::end( s ) )
{
std::cout << "character '5' found at position " << std::distance( s, p ) << std::endl;
}