写一个函数使数字反转
时间: 2024-09-29 15:09:35 浏览: 22
要编写一个函数,使其能够反转一个整数或字符串中的数字顺序,你可以根据输入的数据类型提供两种不同的函数。这里分别介绍这两个版本的函数:
1. **整数反转**:
```c
#include <stdio.h>
int reverseInteger(int num) {
int reversed = 0;
while (num != 0) {
reversed = reversed * 10 + num % 10;
num /= 10;
}
return reversed;
}
int main() {
int input;
printf("Enter an integer: ");
scanf("%d", &input);
int reversed = reverseInteger(input);
printf("Reversed integer: %d\n", reversed);
return 0;
}
```
在这个例子中,`reverseInteger` 函数接收一个整数 `num`,通过不断地取余数(%)和除以10(/),逐步累加到 `reversed` 中。
2. **字符串反转**:
```c
#include <stdio.h>
#include <string.h>
char* reverseString(char str[]) {
int length = strlen(str);
char reversed[length];
for (int i = 0; i < length; i++) {
reversed[i] = str[length - i - 1];
}
reversed[length] = '\0'; // 添加终止符
return reversed;
}
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin); // 注意处理换行符
str[strcspn(str, "\n")] = '\0'; // 去掉换行符
char* reversedStr = reverseString(str);
printf("Reversed string: %s\n", reversedStr);
free(reversedStr); // 不是必须的,但推荐释放内存
return 0;
}
```
在这个版本中,`reverseString` 函数接收一个字符数组 `str`,创建一个新的字符数组 `reversed` 并填充反转后的字符。
如果你希望使用一种通用的方式来处理这两种类型的输入,你可以添加一个类型检查并调用相应的函数。
阅读全文