c语言编写一个西数 Inverse0,实现将字符数组中的字符串逆序存放的功能。 提示:有两种方法。 (1用数组a存放逆序存放前的数组元素,用数组b存放逆序存放后的数组元素。
时间: 2024-02-16 08:59:45 浏览: 101
好的,下面是用数组a和数组b实现字符串逆序的C语言代码:
```c
#include <stdio.h>
#include <string.h>
void Inverse0(char* str) {
int len = strlen(str);
char a[len + 1];
char b[len + 1];
int i;
for (i = 0; i < len; i++) {
a[i] = str[i];
}
a[i] = '\0';
for (i = 0; i < len; i++) {
b[i] = a[len - 1 - i];
}
b[i] = '\0';
strcpy(str, b);
}
int main() {
char str[] = "Hello, world!";
Inverse0(str);
printf("%s\n", str);
return 0;
}
```
代码中,我们首先用`strlen`函数获取字符串长度,创建了两个字符数组`a`和`b`,将原字符串复制到`a`中,然后将`a`中的字符逆序存放到`b`中,最后使用`strcpy`函数将`b`中的字符串复制回原字符串`str`中。在主函数中,我们将一个字符串传递给`Inverse0`函数进行逆序,然后打印结果。
另外,还有一种更简单的实现方法,我们可以直接交换原字符串中的字符位置来实现字符串逆序。具体代码如下:
```c
#include <stdio.h>
#include <string.h>
void Inverse0(char* str) {
int len = strlen(str);
int i;
for (i = 0; i < len / 2; i++) {
char tmp = str[i];
str[i] = str[len - 1 - i];
str[len - 1 - i] = tmp;
}
}
int main() {
char str[] = "Hello, world!";
Inverse0(str);
printf("%s\n", str);
return 0;
}
```
这个方法只需要使用一个字符数组,直接在原字符串中交换字符位置即可。在循环中,我们从字符串两端开始向中间交换字符,直到中间位置。同样地,在主函数中,我们将一个字符串传递给`Inverse0`函数进行逆序,然后打印结果。
阅读全文