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给出的代码较量简捷,写的比俺的要好!