用c语言编写,用自定义函数reverse实现将长度为5的字符串反转
时间: 2024-03-01 08:52:49 浏览: 71
好的,这是一个简单的 C 代码实现:
```c
#include <stdio.h>
void reverse(char s[])
{
// 初始化左右指针
int left = 0, right = 4;
// 交换左右指针的元素
while (left < right) {
char temp = s[left];
s[left] = s[right];
s[right] = temp;
left++;
right--;
}
}
int main()
{
char s[] = "hello";
printf("Before reverse: %s\n", s);
reverse(s);
printf("After reverse: %s\n", s);
return 0;
}
```
输出结果为:
```
Before reverse: hello
After reverse: olleh
```
相关问题
# 如果现在有一个任意十进制数 如何通过代码实现转换二进制 请尝试用C语言代码实现
在C语言中,你可以使用内置的库函数`itoa()`或者手动编写算法将十进制整数转换成二进制字符串。这里我会提供一种手动实现的简单方法,因为`itoa()`在某些旧版系统中可能不可用。
```c
#include <stdio.h>
#include <string.h>
// 自定义函数,将十进制整数转为二进制字符串
char* decimal_to_binary(int num) {
char binary[32]; // 存储二进制字符串的大致长度
int i = 0;
while (num > 0) {
binary[i] = num % 2 + '0'; // 余数+数字'0'转换为字符
num /= 2; // 整除2取商
i++;
}
if (i == 0) { // 避免除法运算导致的空字符串
binary[0] = '0';
i = 1;
}
binary[i] = '\0'; // 添加终止符
reverse(binary, i); // 反转字符串
return binary;
}
// 反转字符串函数
void reverse(char str[], int len) {
int start = 0, end = len - 1;
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
int main() {
int decimal_num = 42; // 要转换的十进制数
char* binary_str = decimal_to_binary(decimal_num);
printf("Decimal %d in binary is: %s\n", decimal_num, binary_str);
free(binary_str); // 注意释放内存
return 0;
}
```
在这个示例中,我们首先创建一个足够大的数组存储二进制数,然后循环除以2并记录每一位的结果,最后反转字符串得到正确的顺序。记得处理特殊情况如零和负数。
阅读全文