C++不用自定义函数实现输入任意两个字符串S1,S2,输出两个字符串的最长公共前缀,如果没有输出空字符串
时间: 2024-04-09 22:32:58 浏览: 87
要在C++中实现输入任意两个字符串S1S2,并输出它们的最长公共前缀,可以按照以下步骤进行:
1. 首先,使用cin分别输入字符串S1和S2。
```cpp
stdstring S1, S2;
std::cin >> S1 >> S2;
```
2. 接下来,定义一个变量prefix并初始化为空字符串,用于保存最长公共前缀。
```cpp
std::string prefix = "";
```
3. 使用for循环遍历字符串S1和S2的字符,比较对应位置上的字符是否相等。
```cpp
for (int i = 0; i < S1.length() && i < S2.length(); i++) {
if (S1[i] == S2[i]) {
prefix += S1[i]; // 将相同的字符添加到最长公共前缀中
} else {
break; // 遇到不相等的字符时结束循环
}
}
```
4. 最后,判断最长公共前缀的长度是否为0,如果是,则输出空字符串;否则,输出最长公共前缀。
```cpp
if (prefix.length() == 0) {
std::cout << "空字符串" << std::endl;
} else {
std::cout << "最长公共前缀: " << prefix << std::endl;
}
```
完整的代码示例:
```cpp
#include <iostream>
#include <string>
int main() {
std::string S1, S2;
std::cin >> S1 >> S2;
std::string prefix = "";
for (int i = 0; i < S1.length() && i < S2.length(); i++) {
if (S1[i] == S2[i]) {
prefix += S1[i];
} else {
break;
}
}
if (prefix.length() == 0) {
std::cout << "空字符串" << std::endl;
} else {
std::cout << "最长公共前缀: " << prefix << std::endl;
}
return 0;
}
```
注意:以上代码假设输入的字符串不包含空格。如果需要处理含有空格的字符串,可以使用std::getline函数进行输入。
阅读全文