翻转字符串 i am a student 为student a am i
我们可以先把字符串通过指针整体翻转为tneduts a am i, 然后在依次局部进行转换
#include <stdio.h>
int main()
{
char str[]="I am a student";
printf("%s\n",str);
char *l,*r;
char temp;
l=r=str;
while(*r!='\0')
{
r++;//右指针后移
}
r--;
while(l<=r)
{
temp=*l;
*l=*r;
*r=temp;
l++;
r--;
}//反转整个字符串为 tneduts a am i
printf("%s\n",str);
//反转局部字符串
r=str;//指针指向开始位置
char *s,*t;
s=t=str;//这里的字符串为tneduts a am i
while(*r!='\0')
{
if(*r==' ')//通过判断空格来翻转字符串
{
t--;
while(s<=t)
{
temp=*t;
*t=*s;
*s=temp;
s++;
t--;
}
s=r+1;
t=r;
}
r++;
t++;
}
printf("%s\n",str);
return 0;
}