编写程序实现将一个字符串按逆序存放,并输出原字符串和逆序后的字符串 用指针完成,
时间: 2024-04-29 10:26:27 浏览: 10
好的,让我来回答您的第一个问题。
实现该功能的程序如下:
```
#include <stdio.h>
#include <string.h>
void reverse_string(char *str);
int main()
{
char str[100];
printf("请输入字符串:");
scanf("%s", str);
printf("原字符串为:%s\n", str);
reverse_string(str);
printf("逆序后的字符串为:%s\n", str);
return 0;
}
void reverse_string(char *str)
{
int len = strlen(str);
char temp;
for (int i = 0; i < len / 2; i++)
{
temp = *(str + i);
*(str + i) = *(str + len - i - 1);
*(str + len - i - 1) = temp;
}
}
```
该程序使用指针实现了将一个字符串按逆序存放的功能,并输出原字符串和逆序后的字符串。
运行程序后,您可以输入一个字符串,程序会将该字符串按逆序存放,并输出原字符串和逆序后的字符串。
需要注意的是,输入的字符串长度不应超过100。如果需要处理更长的字符串,请相应调整程序。
相关问题
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()` 函数来逆序输入的字符串,并输出逆序后的字符串和原字符串。
希望能帮到你!
用C++编写一个程序,编写函数将字符串按逆序存放
好的,下面是用 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` 函数进行逆序操作,并输出结果。