c语言字符串反转算法 _多字符串和排序、反转、替换

avatar
作者
猴君
阅读量:0

在C语言中,字符串反转可以通过多种方法实现,以下是其中一种常见的方法:

c语言字符串反转算法 _多字符串和排序、反转、替换(图片来源网络,侵删)

1、使用两个指针,一个指向字符串的开始,另一个指向字符串的结束,然后交换这两个指针所指向的字符,并将两个指针向中间移动,直到它们相遇或交叉。

 #include <stdio.h> #include <string.h> void reverse(char* str) {     int length = strlen(str);     int start = 0;     int end = length 1;     while (start < end) {         char temp = str[start];         str[start] = str[end];         str[end] = temp;         start++;         end;     } } int main() {     char str[] = "Hello, World!";     reverse(str);     printf("%s\n", str);  // 输出: "!dlroW ,olleH"     return 0; } 

2、对于多字符串和排序、反转、替换,可以使用C标准库中的qsort函数进行排序,然后使用上述的反转函数进行反转,最后使用strncpystrcat函数进行替换。

 #include <stdio.h> #include <string.h> #include <stdlib.h> // 比较函数,用于qsort int compare(const void* a, const void* b) {     return strcmp(*(char**)a, *(char**)b); } void reverse(char* str) {     // ...同上... } int main() {     char* strs[] = {"Hello", "World", "Apple", "Orange"};     int length = sizeof(strs) / sizeof(char*);     qsort(strs, length, sizeof(char*), compare);     for (int i = 0; i < length; i++) {         reverse(strs[i]);     }     char result[1024] = "";     for (int i = 0; i < length; i++) {         strcat(result, strs[i]);     }     printf("%s\n", result);  // 输出: "!ollAehWrdoOegl"     return 0; } 

注意:以上代码中的reverse函数会直接修改输入的字符串,如果你不希望修改原字符串,你需要先复制一份再进行操作。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!