Chinaunix首页 | 论坛 | 博客
  • 博客访问: 257804
  • 博文数量: 49
  • 博客积分: 1231
  • 博客等级: 少尉
  • 技术积分: 967
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-02 00:04
个人简介

-->软硬件结合的系统级开发工程师,带过团队,爱好心理学,哲学,艺术...偶像:达芬奇

文章存档

2014年(2)

2013年(4)

2012年(15)

2011年(28)

分类: C/C++

2011-06-26 19:44:38

  1. /*=========================================
  2. 功能描述:输入任何字符串,并计算出这个字符串
  3.              的字符数,并倒序显示这个字符串
  4. 所用函数:charReverseOrder()
  5. 返回值: 有,返回倒序字符串的地址
  6. =========================================*/

  7. #include

  8. main()
  9. {
  10.     char *charReverseOrder(char *string);
  11.     char *str;
  12.     char *re_char;

  13.     printf("\nPlease a character string: ");
  14.     scanf("%s",str);
  15.     re_char=charReverseOrder(str);

  16.     printf("\nReverse_string = %s",re_char);
  17.     getch();
  18. }

  19. char *charReverseOrder(char *string)
  20. {
  21.     int i,n;
  22.     char *strBuf;

  23.     n=strlen(string);

  24.     strBuf=(char *)malloc(n);
  25.     string=string+n;

  26.     for(i=0;i {
  27.         *(strBuf+i)=*--string;
  28.     }
  29.     printf("\nThe total of Character is: %d\n",i);
  30.     *(strBuf+i)='\0';

  31.     return strBuf;
  32. }

  33. -------------------------------------- 美丽分割线 ----------------------------------------

  34. #include <stdio.h>
  35. void revstr(char *s) //将字符串s反向
  36. {
  37.  char *p=s,c;
  38.  while(*p) //找到串结束标记'\0'
  39.   p++;
  40.  p--;
  41.  //指针回退一个字符,保证反向后的字符串有串结束标记'\0'
  42.  //指针p指向串中最后
  43.  //一个字符
  44.  while(s<p)//当串前面的指针s小于串后面的指针p的时候,进行循环
  45.  {
  46.   c=*s; //交换两个指针所指向的字符,先将指针s指向的字符存入变量c
  47.   *s++=*p;//把指针p指向的字符赋给指针s指向的字符,
  48.       // 然后将指针s向后移动1位
  49.   *p--=c;//将c中存放的字符赋给指针p指向的地址,
  50.       //然后将指针p向前移动1位
  51.  }
  52. }
  53. void main()
  54. {
  55.  char a[50];
  56.  printf("Please input the string:");
  57.  scanf("%s",a); //输入字符串
  58.  revstr(a);//将该字符串反向
  59.  printf("%s",a);//输出反向后的字符串
  60. }
阅读(694) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~