使用 c 语言使用reverse-string函数实现数组字符串中的字符逆向排序
时间: 2024-09-29 09:02:34 浏览: 29
在 C 语言中,你可以通过创建一个函数来实现数组字符串中的字符逆向排序。通常我们会先将字符串复制到一个新的字符数组中,然后对这个新数组进行操作。下面是一个简单的例子,展示如何编写一个名为 `reverse_string` 的函数:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char str[], int length) {
char temp;
for (int i = 0; i < length / 2; i++) {
temp = str[i];
str[i] = str[length - 1]; // 交换字符位置
str[length - i - 1] = temp;
}
}
// 示例使用
int main() {
char my_str[] = "Hello, World!";
int len = strlen(my_str);
printf("Original string: %s\n", my_str);
reverse_string(my_str, len);
printf("Reversed string: %s\n", my_str);
return 0;
}
```
在这个示例中,`reverse_string` 函数接受一个字符串和它的长度作为输入,然后遍历一半的字符,并逐个与对应的反向位置的字符进行交换。这样就实现了字符串的逆序。
相关问题
用C语言编写一个函数,实现逆向输出字符串的单词
以下是用C语言编写一个函数,实现逆向输出字符串的单词的例子:
```c
#include<stdio.h>
#include<string.h>
void reverseWords(char *s) {
int len = strlen(s);
int i = 0, j = 0;
while (i < len) {
while (i < len && s[i] == ' ') i++;
if (i >= len) break;
j = i + 1;
while (j < len && s[j] != ' ') j++;
reverse(s + i, s + j);
i = j;
}
reverse(s, s + len);
}
void reverse(char *begin, char *end) {
char temp;
while (begin < end) {
temp = *begin;
*begin++ = *end;
*end-- = temp;
}
}
int main() {
char str[] = "I love programming";
printf("Original string: %s\n", str);
reverseWords(str);
printf("Reversed words: %s\n", str);
return 0;
}
```
输出:
```
Original string: I love programming
Reversed words: programming love I
```
该函数首先使用两个指针 `i` 和 `j` 遍历字符串,以找出每个单词的起始位置和结束位置,然后使用 `reverse` 函数将每个单词反转,最后使用 `reverse` 函数将整个字符串反转。
定义一个函数,实现字符数组的逆向存放,并编写完整的主程序验证。
以下是一个实现字符数组逆向存放的函数:
```c
void reverse(char str[], int len) {
int i, j;
char temp;
for (i = , j = len - 1; i < j; i++, j--) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
```
该函数接受一个字符数组和数组长度作为参数,将字符数组逆向存放。
以下是一个完整的主程序,用于验证该函数的正确性:
```c
#include <stdio.h>
#include <string.h>
void reverse(char str[], int len);
int main() {
char str[] = "hello world";
int len = strlen(str);
printf("Original string: %s\n", str);
reverse(str, len);
printf("Reversed string: %s\n", str);
return ;
}
void reverse(char str[], int len) {
int i, j;
char temp;
for (i = , j = len - 1; i < j; i++, j--) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
```
该程序首先定义了一个字符串,然后调用 `reverse` 函数将其逆向存放,并输出结果。运行该程序,输出如下:
```
Original string: hello world
Reversed string: dlrow olleh
```
可以看到,该函数成功地将字符串逆向存放。
阅读全文