用c++写使用string类定义两个对象s1和s2,从键盘接收输入的字符串赋值给这两个对象。如果s1大于s2,则连接s1,s2并输出,如果s1小于s2则连接s2,s1并输出。
时间: 2024-05-04 11:16:58 浏览: 100
以下是使用 C 语言和 string.h 库实现的代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 100
int main() {
char str1[MAX_LENGTH], str2[MAX_LENGTH];
printf("请输入字符串s1: ");
scanf("%s", str1);
printf("请输入字符串s2: ");
scanf("%s", str2);
if (strcmp(str1, str2) > 0) {
strcat(str1, str2);
printf("连接后的字符串为: %s\n", str1);
} else {
strcat(str2, str1);
printf("连接后的字符串为: %s\n", str2);
}
return 0;
}
```
首先定义了两个字符数组 `str1` 和 `str2` 来存储输入的字符串,然后使用 `scanf` 函数从键盘读取字符串。接着使用 `strcmp` 函数比较两个字符串的大小关系,如果 `str1` 大于 `str2`,则使用 `strcat` 函数连接两个字符串并输出;如果 `str1` 小于 `str2`,则使用 `strcat` 函数连接 `str2` 和 `str1` 并输出。最后返回 0 表示程序运行成功。
相关问题
C++输入任意两个字符串S1,S2,输出两个字符串的最长公共前缀,如果没有输出空字符串
好的,以下是用 C++ 编写的代码来实现你的需求:
```cpp
#include <iostream>
#include <string>
using namespace std;
string longestCommonPrefix(string s1, string s2) {
string result = "";
int i = 0;
while (i < s1.length() && i < s2.length() && s1[i] == s2[i]) {
result += s1[i];
i++;
}
return result;
}
int main() {
string s1, s2;
cout << "请输入字符串S1: ";
cin >> s1;
cout << "请输入字符串S2: ";
cin >> s2;
string commonPrefix = longestCommonPrefix(s1, s2);
if (commonPrefix.empty()) {
cout << "两个字符串没有最长公共前缀。" << endl;
} else {
cout << "最长公共前缀为: " << commonPrefix << endl;
}
return 0;
}
```
你可以将以上代码保存为 `.cpp` 文件,然后使用 C++ 编译器进行编译运行。
请注意,我只提供了一个简单的实现,可能并不是最优的解决方案。在实际应用中,你可能需要考虑更多的边界情况和优化。
C++不用自定义函数实现输入任意两个字符串S1,S2,输出两个字符串的最长公共前缀,如果没有输出空字符串
要在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函数进行输入。
阅读全文