文字列を単語ごとに反転するコードは次のとおりです-
#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 によって保持されているアドレスと等しくないことを確認しているためです。最初の単語の条件が false になるためです。目的の出力が得られるように条件を変更してください。