C语言编程题:逆序输出字符串中的单词,不保留开头和结尾,相邻单词只保留一个空格。

    xiaoxiao2022-07-13  150

    编写函数以实现以下功能:

    输入:一行字符串

    输出:逆序输出字符串中的单词,不保留开头和结尾的空格,相邻单词间仅保留一个空格

    样例(□代表空格):

    •输入

    □□□□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); }

    其实这道题还有很多做法,我这里列举的只是其中一种做法,如果大家还有什么刚好的做法我们也可以一起讨论

    最新回复(0)