问题描述:.给出一个英语句子,希望你把句子里的单词顺序都翻转过来 输入样例:I love you 输出样例:you love I 1 /*************************************************************************2 ...

问题描述:.给出一个英语句子,希望你把句子里的单词顺序都翻转过来
输入样例:I love you 输出样例:you love I
1 /************************************************************************* 2 > File Name: main.c 3 > Author: 4 > Mail: 5 > Created Time: 2018年12月29日 星期六 09时17分27秒 6 ************************************************************************/ 7 8 #include <stdio.h> 9 #include <string.h> 10 11 void Rolate(char *str, int len);/*翻转句子,但单词不变,如I love you->you love I*/ 12 void RotateStence(char *str, int from ,int to);/*翻转句子,如I love you->uoy evol I*/ 13 void RotateWord(char *str, int len);/*翻转单词,避开空格*/ 14 15 int main() 16 { 17 int len; 18 char *find; 19 char str[300]; 20 printf("Please input a string\n"); 21 fgets(str,300,stdin); 22 find = strchr(str, '\n'); //查找换行符 23 if(find) //如果find不为空指针 24 *find = '\0'; //就把一个空字符放在这里 25 len = strlen(str); 26 Rolate(str, len); 27 printf("%s\n", str); 28 return 0; 29 } 30 31 void RotateStence(char *str, int from, int to) 32 { 33 char tmp; 34 while(from < to) 35 { 36 tmp = str[from]; 37 str[from++] = str[to]; 38 str[to--] = tmp; 39 } 40 } 41 42 void RotateWord(char *str, int len) 43 { 44 int i=0, j=0; 45 for(int k=0; k<len; k++) 46 { 47 if(str[k] != ' ') 48 { 49 j++; 50 } 51 else 52 { 53 RotateStence(str, i, j-1); 54 i = ++j; 55 } 56 } 57 } 58 59 void Rolate(char *str, int len) 60 { 61 RotateStence(str, 0, len-1); 62 RotateWord(str, len); 63 }
沃梦达教程
本文标题为:C语言编程练习(一)


基础教程推荐
猜你喜欢
- C++类和对象到底是什么 2022-11-12
- 使用VS2022开发在线远程编译部署的C++程序(图文详解) 2023-01-15
- C语言预编译#define(预处理) 2023-04-03
- 使用C/C++读写.mat文件的方法详解 2023-03-05
- C/C++ Qt StatusBar底部状态栏应用教程 2023-01-10
- C++高级数据结构之并查集 2023-04-20
- C语言文件操作与相关函数介绍 2023-06-13
- C语言实现简易停车场管理系统 2023-03-13
- 漫画讲解C语言中最近公共祖先的三种类型 2023-01-01
- 如何告诉 MinGW 链接器不要导出所有符号? 2022-10-07