1.题目要求:
输入一段长字符串,输入两个短字符串,从长字符串中提取两个短字符串中间的字符并打印。
2.代码
#include <iostream>
#include <string>int main() {// 输入长字符串std::string longString;std::cout << "请输入一段长字符串:";std::getline(std::cin, longString);// 输入两个短字符串std::string shortString1, shortString2;std::cout << "请输入第一个短字符串:";std::cin >> shortString1;std::cout << "请输入第二个短字符串:";std::cin >> shortString2;// 查找两个短字符串在长字符串中的位置size_t pos1 = longString.find(shortString1);size_t pos2 = longString.find(shortString2);if (pos1 != std::string::npos && pos2 != std::string::npos) {// 提取两个短字符串中间的字符std::string result = longString.substr(pos1 + shortString1.length(), pos2 - pos1 - shortString1.length());std::cout << "两个短字符串之间的字符:" << result << std::endl;}else {std::cout << "长字符串中未找到一个或两个短字符串。" << std::endl;}return 0;
}
3.解析
-
输入长字符串: 提示用户输入一段长字符串,使用
std::getline
读取用户输入。 -
输入第一个短字符串: 提示用户输入第一个短字符串,使用
std::cin
读取用户输入。 -
输入第二个短字符串: 提示用户输入第二个短字符串,使用
std::cin
读取用户输入。 -
查找短字符串位置: 使用
std::string::find
函数在长字符串中查找第一个和第二个短字符串的位置。 -
提取两个短字符串之间的字符: 如果两个短字符串都在长字符串中找到,使用
std::string::substr
函数提取它们之间的字符。 -
打印结果: 使用
std::cout
打印提取的字符,或者如果有短字符串未找到,则打印相应的错误消息。