c++代码输入两个字符串string1和string2,判断string2是否为string1的子串,如果是,返回string2在string1中第一次出现的位置
时间: 2024-03-24 17:17:37 浏览: 32
以下是 C++ 代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1, str2;
cout << "请输入字符串1: ";
cin >> str1;
cout << "请输入字符串2: ";
cin >> str2;
if (str1.find(str2) != string::npos)
{
int pos = str1.find(str2);
cout << "字符串2是字符串1的子串,第一次出现的位置为: " << pos << endl;
}
else
{
cout << "字符串2不是字符串1的子串" << endl;
}
return 0;
}
```
输入两个字符串,其中 `str1.find(str2)` 函数可以查找字符串2在字符串1中第一次出现的位置,如果返回的是 `string::npos`,表示字符串2不是字符串1的子串。
相关问题
c++ 输入任意两个字符串S1和S2,请判断S2是否是S1的子串,是输出YES,不是输出NO。
好的,这是一个简单的字符串匹配问题,可以使用C++的string类和string的find函数来实现。以下是示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string s1, s2;
getline(cin, s1); // 输入第一个字符串
getline(cin, s2); // 输入第二个字符串
if (s1.find(s2) != string::npos) { // 如果s2是s1的子串
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
return 0;
}
```
在上面的代码中,我们首先使用getline函数分别输入两个字符串s1和s2,然后使用string的find函数来查找s2在s1中的位置,如果返回值不为string::npos,说明s2是s1的子串,输出"YES",否则输出"NO"。
C++ string字符串“1:2:41”怎么解析出1:2:41
可以使用stringstream将C string字符串"1:2:41"解析出1:2:41,具体代码如下:
```c++
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
char str[] = "1:2:41";
stringstream ss(str);
string token;
while (getline(ss, token, ':'))
{
cout << token << ":";
}
return 0;
}
```
输出结果为:
```1:2:41:```
其中,stringstream对象ss将C string字符串"1:2:41"转换为一个字符串流,然后使用getline函数按照":"作为分隔符,将字符串流中的字符分割成若干个子串,存储在字符串token中,最后将拆分出来的子串输出。