题目: 通过编程实现语句逆序,如:I am from shanghai,逆序为shanghai from I。
方法一:常用方法
1)先将单词逆序,得到“I ma morf iahgnahs”
2)再将整个句子逆序得到“shanghai from I”。
#include <stdio.h>
void RevWord(char *p, char *q)
{
char tmp;
while (p < q)
{
tmp = *p;
*p++ = *q;
*q-- = tmp;
}
}
char *RevSentence(char *s)
{
char *p = s;
char *q = s;
while (*q != '\0')
{
if (*q == ' ')
{
RevWord(p, q-1);
q++;
p = q;
}
else
q++;
}
RevWord(p, q-1);
RevWord(s, q-1);
return s;
}
int main()
{
char str[100] = "I hushuai";
printf("%s\n",RevSentence(str));
return 0;
}
方法二、利用主函数参数列表的优势
#include <stdio.h>
int main(int argc ,char *argv[])
{
int i;
for (i = argc-1; i > 0; i--)
{
printf("%s%c", argv[i],((i-1)?(' '):('\0')));
}