文字列を単語の逆順序にする
736 ワード
文字列を指定し、単語ごとに文字列を逆順にします.たとえば、「hello world」と入力し、「world hello」と出力します.方法:まず単語の逆順に従って、それから文全体に逆順にします.
// , ,
#include
//p q
void ReverseWord(char *p, char *q) {
while(p < q) {
*p = *p ^ *q;
*q = *p ^ *q;
*p = *p++ ^ *q--;
}
}
char *ReverseSentence(char *s) {
char *p = s;
char *q = s;
while(*q != '\0') {
if(*q == ' ') {//
ReverseWord(p,q-1);
q++; //
p = q;
}
else
q++;
}
ReverseWord(p, q-1);//
ReverseWord(s, q-1);//
return s;
}
int main( ) {
char s[] = "I am glad to see you";
printf("%s
", s);
ReverseSentence(s);
printf("%s
", s);
return 0;
}