- /*=========================================
- 功能描述:输入任何字符串,并计算出这个字符串
- 的字符数,并倒序显示这个字符串
- 所用函数:charReverseOrder()
- 返回值: 有,返回倒序字符串的地址
- =========================================*/
- #include
- main()
- {
- char *charReverseOrder(char *string);
- char *str;
- char *re_char;
- printf("\nPlease a character string: ");
- scanf("%s",str);
- re_char=charReverseOrder(str);
- printf("\nReverse_string = %s",re_char);
- getch();
- }
- char *charReverseOrder(char *string)
- {
- int i,n;
- char *strBuf;
- n=strlen(string);
- strBuf=(char *)malloc(n);
- string=string+n;
- for(i=0;i {
- *(strBuf+i)=*--string;
- }
- printf("\nThe total of Character is: %d\n",i);
- *(strBuf+i)='\0';
- return strBuf;
- }
- -------------------------------------- 美丽分割线 ----------------------------------------
- #include <stdio.h>
- void revstr(char *s) //将字符串s反向
- {
- char *p=s,c;
- while(*p) //找到串结束标记'\0'
- p++;
- p--;
- //指针回退一个字符,保证反向后的字符串有串结束标记'\0',
- //指针p指向串中最后
- //一个字符
- while(s<p)//当串前面的指针s小于串后面的指针p的时候,进行循环
- {
- c=*s; //交换两个指针所指向的字符,先将指针s指向的字符存入变量c
- *s++=*p;//把指针p指向的字符赋给指针s指向的字符,
- // 然后将指针s向后移动1位
- *p--=c;//将c中存放的字符赋给指针p指向的地址,
- //然后将指针p向前移动1位
- }
- }
- void main()
- {
- char a[50];
- printf("Please input the string:");
- scanf("%s",a); //输入字符串
- revstr(a);//将该字符串反向
- printf("%s",a);//输出反向后的字符串
- }