Interview often encounter problems, C language implementation string reverse. such as input "ABCD", Output "DCBA".
Recently tidied up, the following code has been tested.
#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");
}
The following is the code given by Ms C Library:
1.char * __cdecl strrev (char * string)
0.9
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)
Ten. {
ch = *left;
*left++ = *string;
*string--= ch;
. }
Return (start);
16.}
Ms Given the code is relatively concise, write better than my!