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

  • 2019 年 10 月 25 日
  • 筆記

如何进行字符串的序排列

 

本次实验是字符串的倒序排列,在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:%sn", 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 = ''; /*尾部要加''*/  21     printf("after:%sn", 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:%sn", 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:%sn", 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进行安装后编译。