c语言实现字符串逆序
口试常常会碰着的题,C语言实现字符串逆序。如输入“abcd”,输出“dcba”。
最近本身整理了一下,下面代码已颠末测试。
#define Max 200
main()
{
   char str[Max];
   printf("请输入字符串:");
   gets(str);
   int len=0;
   char *strlen=str;
   char *left=str;
   char temp;
   while(*strlen++)len++;
   strlen-=2;//这里很值得思考
   while(left<strlen)
   {
      temp=*left;
      *left++=*strlen;
      *strlen--=temp;
   }
   printf("逆序后的字符串为:");
   int i;
   for(i=0;i<len;i++)
       printf("%c",str[i]);
   printf("\n");
   system("pause");
}
下面是MS的C库给出的代码:
1.char * __cdecl strrev ( char * string )
2.{
3. char *start = string;
4. char *left = string;
5. char ch;
6. while (*string++) /* find end of string */
7. ;
8. string -= 2;
9. while (left < string)
10. {
11. ch = *left;
12. *left++ = *string;
13. *string-- = ch;
14. }
15. return(start);
16.}
MS给出的代码较量简捷,写的比俺的要好!
