设为首页 加入收藏

TOP

C语言题:IV---翻转字符串(三)
2013-07-22 17:57:26 来源: 作者: 【 】 浏览:379
Tags:语言 IV--- 翻转 字符串

 

  优雅的方法应该是这样的思路:

  找到这个字符串的中间位置,然后将其左边的字符与右边的字符交换位置。

  实现起来应该是下面这样:

  [cpp]

  #include

  #include

  int main()

  {

  char string[20], tmp;

  int length;

  printf("please input less than 20 char:");

  scanf("%s",string);

  printf("your input string is %s\n",string);

  //get string length,very useful method

  for(length=0;string[length];length++)

  ;

  printf("length is %d\n",length);

  //very beateful !!!

  for(int i=0;i

  {

  tmp = string[i];

  printf("tmp is %c\n" ,string[i]);

  string[i] = string[length-i-1];

  printf("string[%d] is %c\n",i,string[length-i-1]);

  string[length-i-1] = tmp;

  printf("string[%d] is %c\n",length-i-1,tmp);

  }

  printf("after revert:%s\n",string);

  return 0;

  }

  运行效果如下:

  [plain]

  D:\workspace\C\revert_string>gcc -o revert revert_string.c -std=c99

  D:\workspace\C\revert_string>revert

  please input less than 20 char:abc

  your input string is abc

  length is 3

  tmp is a

  string[0] is c

  string is a

  after revert:cba

  D:\workspace\C\revert_string>revert

  please input less than 20 char:abcd

  your input string is abcd

  length is 4

  tmp is a

  string[0] is d

  string is a

  tmp is b

  string is c

  string is b

  after revert:dcba

  这样的算法,相比之前要提高甚多效率。只要开动脑筋,世界会更加优雅。

      

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇c语言的通用二分查找算法 下一篇用C的库函数获取本地时间

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: