字符串反转

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#pragma message "X_86 message"
char *reserve(char *p,int len);
char* reverstr(char * x);
int main()
{

char x[100];
scanf("%[^\n]",x);
// fgets(x,100,stdin);
int len = strlen(x);
printf("%d\n",len);
char *px = x;
printf("%s",x);

reverstr(x);
printf("%s\n",x);
return 0;


}

//反转单词

char* reverstr(char * x)
{
char *frist,*second;

frist = x;
second = x;
while(*second!='\0')
{
char *sign;
while(*second !=' '&&*second !='\0')
{
second++;
}
sign = second;
//second--;

second--;
while(frist<second)
{
char temp = *frist;
*frist = *second;
*second = temp;
frist++;
second--;

}
if(*sign == '\0')
break;
while(*sign ==' ')
{
sign++;
}
frist = sign;
second = sign;


}
printf("%s\n",x);
}
//返转整个字符串
char *reserve(char *p,int len)
{

char *frist = p;
char *second = p+len-1;
//printf("second %d\n",strlen(second));
if(*second == ',')
second--;
while(frist < second)
{
char temp = *frist;
*frist = *second;
*second = temp;
frist++;
second--;
}
printf("in reserve: %s\n",p);
return p;
}

posted @ 2019-06-06 07:15  countryboy666  阅读(93)  评论(0编辑  收藏  举报