c语言reverse函数逆序
时间: 2023-11-29 13:07:20 浏览: 116
C语言中有多种方式可以实现字符串逆序,其中一个常用的方法是使用reverse函数。下面是使用reverse函数对字符串进行逆序的示例代码:
```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("请输入一个字符串:");
fgets(str, 100, stdin);
reverse(str);
printf("逆序后的字符串为:%s", str);
return 0;
}
```
在这个示例代码中,我们定义了一个reverse函数,它接收一个字符串作为参数,并将该字符串逆序。具体实现方式是使用for循环,将字符串的第i个字符与第len-i-1个字符交换位置。最后,我们在main函数中使用fgets函数从标准输入读取一个字符串,并调用reverse函数对其进行逆序,最终输出逆序后的结果。
相关问题
c语言递归实现逆序输出
C语言递归实现逆序输出可以通过以下步骤实现:
1. 定义一个递归函数,接受一个整数参数作为输入。
2. 在递归函数内部,首先判断输入的整数是否大于0,如果大于0,则执行以下步骤:
- 将输入的整数对10取余,得到最后一位数字。
- 将输入的整数除以10,得到去掉最后一位数字的剩余部分。
- 调用递归函数,将剩余部分作为参数传入。
3. 在递归函数的递归调用之后,将最后一位数字打印输出。
以下是C语言递归实现逆序输出的代码示例:
```c
#include <stdio.h>
void reversePrint(int num) {
if (num > 0) {
int lastDigit = num % 10;
int remainingNum = num / 10;
reversePrint(remainingNum);
printf("%d ", lastDigit);
}
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
printf("逆序输出结果为:");
reversePrint(num);
printf("\n");
return 0;
}
```
运行以上代码,输入一个整数,程序将会逆序输出该整数的每一位数字。
C语言递归实现逆序程序
好的,下面是C语言递归实现逆序程序的示例代码:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str, int start, int end) {
if (start >= end) {
return;
}
// 交换首尾字符
char temp = str[start];
str[start] = str[end];
str[end] = temp;
// 递归调用
reverse(str, start + 1, end - 1);
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
// 计算字符串长度
int len = strlen(str);
// 调用递归函数
reverse(str, 0, len - 1);
printf("逆序后的字符串为:%s\n", str);
return 0;
}
```
在这个程序中,我们定义了一个 `reverse` 函数,它接收一个字符串、起始位置和结束位置作为参数。函数的作用是将字符串中从起始位置到结束位置的字符逆序。具体实现是先交换起始位置和结束位置的字符,然后递归调用自身,处理起始位置加1、结束位置减1的子问题。
在 `main` 函数中,我们首先读入一个字符串,然后调用 `reverse` 函数,将整个字符串逆序。最后输出逆序后的字符串。