如何在 c++ 中搜索另一个字符串中的字符串
How to search a string in the another string in c++?
int main(){
string s1="gandalf";
string s2="dal";
function(s1,s2);
return 0;
}
在函数中,如果字符串 S1 中有"DAL",则返回 1。否则返回 0
尝试以下操作
bool function( const std::string &s1, const std::string &s2 )
{
return s1.find( s2 ) != std::string::npos;
}
如果你想使用循环自己编写函数,那么它可以看起来像这样
#include <iostream>
#include <iomanip>
#include <string>
bool function( const std::string &s1, const std::string &s2 )
{
bool found = false;
if ( !( s1.size() < s2.size() ) && !s2.empty() )
{
for ( size_t i = 0; !found && i < s1.size() - s2.size() + 1; i++ )
{
size_t j = 0;
while ( j < s2.size() && s1[i+j] == s2[j] ) ++j;
found = j == s2.size();
}
}
return found;
}
int main()
{
std::string s1 = "gandalf";
std::string s2 = "dal";
std::cout << std::boolalpha << function( s1, s2 ) << std::endl;
return 0;
}
程序输出为
true
void fonk(string a, string b){
char x[10],y[10];
for(int i=0;i<10;i++)
x[i]=a[i];
for(int i=0;i<10;i++)
y[i]=b[i];
for(int j=0;j<10;j++){
if(x[j]==y[0]&&x[j+1]==y[1]&&x[j+2]==y[2])
cout<<"true"<<endl;
else
cout<<"false"<<endl;
}}
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 我如何通过引用将 c++ 字符串分配给另一个字符串
- 使用另一个字符串从字符串中删除空格
- 有没有办法使用 strcpy 将字符串数组复制到另一个字符串或其他数组中?
- 当分配一个字符串值并稍后通过分配另一个值进行更改时C++如何管理内存?
- 如何在不知道对应关系的情况下在字符串中搜索字符并将其分配给另一个字符?
- 如何在使用 getch 后在另一个字符串的末尾连接一个字符串
- 如何在另一个字符串的x位置插入一个字符串?
- 从 C 字符串构造 std::string 与从另一个 std::string 构造 std::string 不一致
- C++:递归地将字符串中一个字母的所有实例替换为另一个字母
- 在另一个字符串中插入文件扩展名之前的字符串
- 使用C++将一个字符串替换为另一个字符串
- 将字符从一个字符串简单分配到另一个字符串不起作用
- 将 int 转换为字符串,然后连接另一个变量以创建完整扩展名,然后将其转换为 const_char*
- 将字符串中的单个单词替换为另一个单词
- 将文本流中一个字符串的所有匹配项替换为另一个字符串
- 无法将字符串用作另一个类的参数
- 另一个字符串文字,UDL 迷宫
- 在给定字符串上使用 tolower() 和 isalpha() 并将其输出设置为另一个字符串
- 如何使用循环从另一个字符串创建一个没有空格的新字符串