C語言字符串逆序的方法


1. 使用兩個指針

 1 #include <cstdio>
 2 #include <cstring>
 3 
 4 char *reverse_str(char *str)
 5 {
 6     if (str == NULL || *str == '\0') {
 7         return NULL;
 8     }
 9     char* start = str;
10 
11     char* end = str;
12     while (*end != '\0') end++;   
13     end--;
14  
15     while (start < end) {
16         char t = *start;
17         *start++ = *end;
18         *end-- = t ;
19     }
20 
21     return str;
22 }
23 
24 int main(int argc, char *argv[])
25 {
26     if (argc != 2) {
27         printf("need on param !\n");
28         return 0;
29     }
30     printf("%s\n", argv[1]);
31     printf("%s\n", reverse_str(argv[1]));
32     return 0;
33 }

 

2. 遞歸函數

 1 void reverse_str(char* s, int left, int right)
 2 {
 3     if (left >= right) {
 4         return;
 5     }
 6  
 7     char t = s[left];
 8     s[left] = s[right];
 9     s[right] = t;
10  
11     reverse_str(s, left + 1, right - 1);
12 }
13 
14 int main(int argc, char *argv[])
15 {
16     if (argc != 2) {
17         printf("need on param !\n");
18         return 0;
19     }
20     printf("%s\n", argv[1]);
21     reverse_str(argv[1], 0, strlen(argv[1]) - 1);
22     printf("%s\n", argv[1]);
23     return 0;
24 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM