反转字符串中的单词
1、问题描述:
网站建设、成都网站设计,成都做网站公司-创新互联已向上千家企业提供了,网站设计,网站制作,网络营销等服务!设计与技术结合,多年网站推广经验,合理的价格为您打造企业品质网站。
例:I am student ------>结果为:student am I
算法思想:
先将整个字符串反转一遍,然后在从头开始,遇到空格的在次进行反转,就可以实现反转字符串中的单词了;
2、代码实现
#include#include #include void revStr(char *str, int from, int to); void finalRev(char *str); void finalRev(char *str){ int from = 0; int to = 0; while(str[to]){ while(isalpha(str[to])){ to++; } revStr(str, from, to-1); while(isspace(str[to])){ //针对中间出现多个空格的情况,可以跳跃过去 to++; } from = to; } } void revStr(char *str, int from, int to){ char tmp; while(from < to){ tmp = str[from]; str[from++] = str[to]; str[to--] = tmp; } } void main(void){ char str[80]; char *p = str; int strLen; int count = 0; int i = 0; printf("请输入字符串:\n"); gets(str); strLen = strlen(str); revStr(str, 0, strLen-1); finalRev(str); puts(str); }
3、结果截图
算法分析:空间复杂度为:O(1);
分享标题:反转字符串中的单词
文章来源:http://scyanting.com/article/pgedde.html