c++程序设计,本程序的功能是将两个字符串内容比较后交换内容输出
时间: 2023-06-14 17:05:57 浏览: 91
下面是一个简单的C++程序,实现了将两个字符串内容比较后交换内容输出的功能:
```
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1, str2;
cout << "请输入第一个字符串:";
cin >> str1;
cout << "请输入第二个字符串:";
cin >> str2;
if (str1 > str2) {
swap(str1, str2);
}
cout << "交换后的字符串为:" << str1 << " " << str2 << endl;
return 0;
}
```
程序中首先定义了两个字符串变量 str1 和 str2,并通过 cin 语句从用户输入中获取字符串的内容。
然后使用 if 语句比较两个字符串的内容,并在需要时使用 swap 函数交换两个字符串的值。
最后使用 cout 语句将交换后的字符串输出到屏幕上。
相关问题
c++程序设计,输入5个字符串(含空格),用指针实现按字母顺序由小到大对字符串 排序后输出。
以下是一个使用指针实现字符串排序的示例代码:
```
#include <iostream>
#include <cstring>
using namespace std;
void sort_strings(char** strings, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (strcmp(strings[i], strings[j]) > 0) {
char* temp = strings[i];
strings[i] = strings[j];
strings[j] = temp;
}
}
}
}
int main() {
const int n = 5;
char* strings[n];
// 输入5个字符串
for (int i = 0; i < n; i++) {
string str;
getline(cin, str);
strings[i] = new char[str.length() + 1];
strcpy(strings[i], str.c_str());
}
// 对字符串排序
sort_strings(strings, n);
// 输出排序后的字符串
for (int i = 0; i < n; i++) {
cout << strings[i] << endl;
}
// 释放内存
for (int i = 0; i < n; i++) {
delete[] strings[i];
}
return 0;
}
```
在上面的代码中,我们定义了一个`sort_strings`函数,它使用了一个指向字符指针的指针作为参数。在函数内部,我们使用了两个嵌套的循环来比较字符串并进行排序。我们使用`strcmp`函数来比较两个字符串的大小,如果第一个字符串大于第二个字符串,则交换它们的位置。在`main`函数中,我们定义了一个指向字符指针的数组`strings`,并使用`getline`函数从输入流中读取5个字符串。我们使用`new`关键字为每个字符串分配内存,并使用`strcpy`函数将字符串复制到分配的内存中。然后,我们调用`sort_strings`函数对字符串进行排序,并输出排序后的字符串。最后,我们使用`delete`关键字释放每个字符串占用的内存。
设计一个void类型的函数reverse_string,其功能是将一个给定的字符串逆序。例如,给定字符串为“hello”,逆序后为“olleh”。 ###函数接口定义如下: /* 函数原型参见main函数 */ ###裁判测试程序样例: #include <iostream> #include <string> using namespace std; /* 你的代码将嵌在这里 */ int main(int argc, char const *argv[]) { string str; getline(cin, str); //输入字符串 reverse_string(str); //逆序字符串str cout << str << endl; //输出逆序后的字符串 return 0; } ###输入样例: hello ###输出样例: olleh
以下是实现题目要求的函数reverse_string的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
void reverse_string(string& str) {
int left = 0, right = str.size()-1;
while(left < right) {
swap(str[left], str[right]);
left++;
right--;
}
}
int main(int argc, char const *argv[]) {
string str;
getline(cin, str); //输入字符串
reverse_string(str); //逆序字符串str
cout << str << endl; //输出逆序后的字符串
return 0;
}
```
函数接受一个string类型的引用参数,对字符串进行原地修改,将其逆序。在实现中,使用双指针从字符串两端开始向中间遍历,每次将两端指针指向的字符交换即可。
阅读全文