如何进行字符串的倒序排列

时间:2024-01-25 17:24:49

如何进行字符串的倒序排列

如何进行字符串的序排列

 

本次实验是字符串的倒序排列,在C语言中对字符串的操作可以说是无处不在,其作用不言而喻。下面就用2种不同的方法对字符串进行倒序排列。

 

一、实验程序

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <stdlib.h>
 4 
 5 /*方法一:*/
 6 static int string_t1(void)
 7 {
 8     char *str = {"Hello, world!"};
 9     printf("before:%s\n", str);
10 
11     int len = strlen(str);
12     char * std = (char *)malloc(len+1); /*要多分配一个空间*/
13     char *p = std;
14     char *s = &str[len-1];/*指向最后一个字符*/
15 
16     while(len-- != 0)
17     {
18         *p++ = *s--;
19     }
20     *p = '\0'; /*尾部要加'\0'*/
21     printf("after:%s\n", std);
22 
23     free(std); /*使用完,应该释放空间,以免造成内存泄漏*/
24     std = NULL; /*防止产生野指针*/
25 }
26 
27 /*方法二:*/
28 static int string_t2(void)
29 {
30     char t;
31     char str[] = "Are you ok!";
32 
33     printf("before:%s\n", str);
34 
35     //int len = sizeof(str)-1;
36     int len = strlen(str);
37 
38     for(int i = 0; i < len/2; i++)
39     {
40         t = str[i];
41         str[i] = str[len-i-1];
42         str[len-i-1] = t;
43     }
44     printf("after:%s\n", str);
45 }
46 
47 int main(int argc, char const *argv[])
48 {
49     string_t1();
50     string_t2();
51 
52     return 0;
53 }

 

二、实验结果

说明:实验编译环境Ubuntu,如果没有安装Ubuntu或者CentOS, 在网上自行下载VC++6.0中文版或者Visual Studio(VS2013进行安装后编译。