反转字符串中的单词
1、问题描述:
例:I am student ------>结果为:student am I
算法思想:
先将整个字符串反转一遍,然后在从头开始,遇到空格的在次进行反转,就可以实现反转字符串中的单词了;
2、代码实现
#include<stdio.h>#include<string.h>#include<ctype.h>voidrevStr(char*str,intfrom,intto);voidfinalRev(char*str);voidfinalRev(char*str){intfrom=0;intto=0;while(str[to]){while(isalpha(str[to])){to++;}revStr(str,from,to-1);while(isspace(str[to])){//针对中间出现多个空格的情况,可以跳跃过去to++;}from=to;}}voidrevStr(char*str,intfrom,intto){chartmp;while(from<to){tmp=str[from];str[from++]=str[to];str[to--]=tmp;}}voidmain(void){charstr[80];char*p=str;intstrLen;intcount=0;inti=0;printf("请输入字符串:\n");gets(str);strLen=strlen(str);revStr(str,0,strLen-1);finalRev(str);puts(str);}
3、结果截图
算法分析:空间复杂度为:O(1);
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。