编写函数以实现以下功能:
输入:一行字符串
输出:逆序输出字符串中的单词,不保留开头和结尾的空格,相邻单词间仅保留一个空格
样例(□代表空格):
•输入
□□□□Hello□□everyone,□we□are□Linuxer□
•输出
Linuxer□are□we□everone,□Hello
#include<stdio.h>
#include<string.h>
void print(char* in) //编写一个函数来输出字符串
{
char temp[100];
int i=0,j=0,k=0;
char stack[100][100]; //创建一个栈
while(*in)
{
if(*in!=' ') //判断输入是否为空格
{
temp[i] = *in;
i++;
}
if(*in == ' '&& i!=0)
{
for(j=0;j<i;j++)
{
stack[k][j] = temp[j];
}
stack[k][j] = '\0'; //栈顶添加 '\0'
i=0;
k++;
}
in++;
}
for(i=k-1;i>0;i--) //输出前k-1个字符
{
printf("%s ",stack[i]);
}
printf("%s",stack[0]); //输出最后一个字符
}
int main()
{
char input[]=" Hello everyone, we are xiyouLinuxer ";
print(input);
}
其实这道题还有很多做法,我这里列举的只是其中一种做法,如果大家还有什么刚好的做法我们也可以一起讨论