如何进行字符串的倒序排列
本次实验是字符串的倒序排列,在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)进行安装后编译。