逐字反转字符串的代码如下 -
#include<stdio.h>
int main()
{
int i=0;
char str[]="you are selected";
char *q,*r,*s;
q=str;
while(*q!=NULL)
{
q++;
}
q--;
s=q;
while(q!=str) //i tried for q!=str-1 but its not working
{
if(*q==' ')
{
r=q+1;
while(r!=s+1)
{
printf("%c",*r);
r++;
}
printf(" ",*r);
s=q-1;
}
q--;
}
}
但问题是上面的代码没有打印第一个单词,因为在while循环的条件部分我正在检查字符串开头的地址不等于q持有的地址。因为对于第一个单词条件变为假。请修改条件,使其提供所需的输出。