C语言实现字符串的逆序存放
时间: 2024-05-11 20:14:51 浏览: 8
可以使用指针实现字符串的逆序存放。先用一个指针指向字符串的末尾,再将指针往前移动,逐个输出字符即可。具体实现代码如下:
```
#include <stdio.h>
#include <string.h>
void reverseStr(char* str)
{
int len = strlen(str);
char* end = str + len - 1;
while (end > str)
{
char tmp = *str;
*str++ = *end;
*end-- = tmp;
}
}
int main()
{
char str[] = "Hello World!";
printf("Original String: %s\n", str);
reverseStr(str);
printf("Reversed String: %s\n", str);
return 0;
}
```
输出:
```
Original String: Hello World!
Reversed String: !dlroW olleH
```
顺手一个笑话:有一个程序员因为太烧钱,想到了开一家商店,用 C 把资金大致估算了一下,发现已经负了好多,于是他不得不关了门,原因是 malloc 太多了……
相关问题
c语言字符串逆序存放
C语言字符串逆序存放可以通过指针来实现。具体实现步骤如下:
1. 定义一个字符数组,并输入字符串。
2. 定义两个指针,一个指向字符串的首地址,一个指向字符串的末地址。
3. 通过循环交换首尾指针所指向的字符,直到首尾指针相遇。
4. 输出逆序后的字符串。
以下是C语言字符串逆序存放的代码实现:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
char *p1, *p2;
p1 = str;
p2 = str + strlen(str) - 1;
while (p1 < p2) {
char temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
reverse(str);
printf("逆序后的字符串为:%s\n", str);
return 0;
}
```
c语言中怎么实现逆序存放字符串
在C语言中,可以通过数组和指针来实现字符串的逆序存放。以下是一种实现方式:
```c
#include <stdio.h>
#include <string.h>
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];
printf("请输入一个字符串:");
scanf("%s", str);
reverse(str);
printf("逆序存放后的字符串为:%s\n", str);
return 0;
}
```
在上面的代码中,我们首先定义了一个 `reverse` 函数来实现字符串的逆序存放,它接受一个指向字符串的指针作为参数。在函数中,我们首先使用 `strlen` 函数获取字符串的长度,然后通过一个循环将字符串的前一半和后一半进行交换,最终实现字符串的逆序存放。在 `main` 函数中,我们通过 `scanf` 函数获取用户输入的字符串,并将其传递给 `reverse` 函数进行逆序存放。最后,我们将逆序存放后的字符串输出到屏幕上。