编写一个程序,反序显示命令行参数的单词。例如,命令行参数是see you later,改程序应打印later you see
思路:不是把各单词存到数组中倒叙输出而是由后往前将空格后的单词输出后再把空格赋为’\0’
#include<stdio.h>
#include<string.h>
void fz(char*,int);
int main()
{
char str[100];
int i;
printf("输入字符串:");
while(i<100&&(str[i]=getchar())!='\n'){//给字符串赋值直到输入回车
i++;
}
str[i]='\0';//把内容是回车符的字符赋为'\0'
fz(str,strlen(str));
return 0;
}
void fz(char*str,int len){
int i;
for(i=len-1;i>=0;i--){
if(str[i]==' '){//当他等于空格时将它后面的单词输出
printf("%s",str+i+1);
str[i]='\0';//把内容是空格的字符赋为'\0',避免后面的单词重复输出
printf(" ");//手动空格
}
}
printf("%s",str);//指针已经移到第一个字符,将其输出
}
/*
总结:不是把各单词存到数组中倒叙输出而是由后往前将空格后的单词输出后再把空格赋为'\0'
思路很好,省心省力
-----------------------
在dev中输出结果为
输入字符串:see you later
later you see 正确
-----------------------
*/