用C++编写一个程序,编写函数将字符串按逆序存放
时间: 2024-03-11 15:50:36 浏览: 100
好的,下面是用 C++ 编写的程序,实现将字符串按逆序存放的功能:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void reverse(char str[]) {
int len = strlen(str);
for(int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
int main() {
char str[100];
cout << "请输入字符串:";
cin >> str;
reverse(str);
cout << "逆序后的字符串为:" << str << endl;
return 0;
}
```
在上面的程序中,我们编写了一个 `reverse` 函数,用于将传入的字符串按逆序存放。具体实现是使用双指针法,将字符串首尾字符互换,直到两个指针相遇为止。在 `main` 函数中,我们接受用户输入的字符串,调用 `reverse` 函数进行逆序操作,并输出结果。
相关问题
用C++编写一个程序,编写函数将字符串按逆序存放(其中头文件有iostream、stdio.h、string.h、fstream)
好的,下面是用 C++ 编写的程序,实现将字符串按逆序存放的功能(包含头文件 iostream、stdio.h、string.h、fstream):
```c++
#include <iostream>
#include <cstdio>
#include <cstring>
#include <fstream>
using namespace std;
void reverse(char str[]) {
int len = strlen(str);
for(int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
int main() {
char str[100];
cout << "请输入字符串:";
scanf("%s", str);
reverse(str);
cout << "逆序后的字符串为:" << str << endl;
ofstream out("output.txt");
out << str;
out.close();
return 0;
}
```
在上面的程序中,我们同样编写了一个 `reverse` 函数用于将传入的字符串按逆序存放。在 `main` 函数中,我们使用 `scanf` 函数获取用户输入的字符串,调用 `reverse` 函数进行逆序操作,并将结果输出到屏幕上。同时我们使用 `ofstream` 类型的对象 `out` 将逆序后的字符串输出到文件 `output.txt` 中,最后关闭文件。
c++编写实现将一个字符串按逆序存放,并输出原字符串和逆序后的字符串(用指针)
好的,让我来回答你的问题。
以下是一个使用指针实现字符串逆序的示例程序:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char *str)
{
int len = strlen(str);
char *start, *end, temp;
start = str;
end = str + len - 1;
while (start < end) {
temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main()
{
char str[100];
printf("请输入一个字符串: ");
gets(str); // 这里不安全,可以使用fgets()代替
printf("原字符串: %s\n", str);
reverse_string(str);
printf("逆序后的字符串: %s\n", str);
return 0;
}
```
这个程序中,我们定义了一个 `reverse_string()` 函数,接受指向字符串的指针,用于将字符串逆序。原理是使用两个指针,分别指向字符串的起始位置和末尾位置,交换它们指向的字符,直到起始位置大于等于末尾位置。
在 `main()` 函数中,我们调用 `reverse_string()` 函数来逆序输入的字符串,并输出逆序后的字符串和原字符串。
希望能帮到你!
阅读全文