用C++实现一个函数,入参为两个string,输出为bool值,当第二个字符串是第一个字符串子串时,输出true,否则输出false
时间: 2024-03-03 16:49:10 浏览: 62
可以使用C++中的string::find函数来实现此功能。string::find函数返回一个整数值,表示在字符串中找到子字符串的位置,如果没有找到则返回string::npos。可以通过判断返回值是否为string::npos来判断是否找到了子字符串。
下面是实现代码:
```c++
#include <iostream>
#include <string>
using namespace std;
bool isSubstring(string s1, string s2) {
return s1.find(s2) != string::npos;
}
int main() {
string s1 = "hello, world";
string s2 = "world";
string s3 = "hi";
cout << isSubstring(s1, s2) << endl; // 输出1,表示s2是s1的子串
cout << isSubstring(s1, s3) << endl; // 输出0,表示s3不是s1的子串
return 0;
}
```
相关问题
用C++实现一个函数,入参为两个string,输出为bool值,当第二个字符串等于第一个字符串的最后五个字符时,输出true,否则输出false
以下是一个用 C++ 实现的函数,满足你的需求:
```c++
bool lastFiveEqual(string str1, string str2) {
if (str1.length() < 5) {
return false;
}
string lastFive = str1.substr(str1.length() - 5);
return str2 == lastFive;
}
```
这个函数接受两个字符串作为参数。如果第一个字符串的长度少于 5,直接返回 false;否则,获取第一个字符串的最后五个字符,然后将第二个字符串与这五个字符进行比较,如果相等则返回 true,否则返回 false。
这个函数使用了 string 类的 substr() 方法来获取字符串的子串,与 == 运算符来比较两个字符串是否相等。
回文串是从左到右或者从右到左读起来都一样的字符串,试编程判别一个字符串是否为回文串。 C++实验课程中,要求设计如下函数来实现: bool isPalindrome (const string& s) 主函数中用getline或者cin读取字符串,调用上面的函数判断,在主函数中输出结果。
好的,这个问题很简单,可以使用双指针的方法来判断一个字符串是否为回文串。具体的实现如下:
```cpp
bool isPalindrome(const string& s) {
int left = 0, right = s.size() - 1;
while (left < right) {
if (s[left] != s[right]) {
return false;
}
left++;
right--;
}
return true;
}
```
上面的代码中,我们使用双指针分别指向字符串的首尾字符,然后从两端同时向中间扫描。每次比较左右指针所指向的字符是否相同,如果不同,则说明不是回文串,直接返回 false;如果一直比较到左右指针相遇,则说明是回文串,返回 true。
在主函数中,可以使用 getline 或者 cin 来读取字符串,然后调用 isPalindrome 函数来判断是否为回文串,代码如下:
```cpp
#include <iostream>
#include <string>
using namespace std;
bool isPalindrome(const string& s) {
int left = 0, right = s.size() - 1;
while (left < right) {
if (s[left] != s[right]) {
return false;
}
left++;
right--;
}
return true;
}
int main() {
string s;
getline(cin, s);
if (isPalindrome(s)) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
}
```
上面的代码中,我们使用 getline 函数来读取一行字符串,然后调用 isPalindrome 函数来判断是否为回文串。如果是回文串,则输出 "Yes",否则输出 "No"。
阅读全文