字符串倒置
发布时间:2020-12-14 05:34:00 所属栏目:百科 来源:网络整理
导读:将一句话里面的单词进行倒置,标点符号不倒换,比如一句话“ I love you!" 。 倒换后变成了” you! love I" ?。 算法思想:? 第一: 将字符串全盘倒置为:“ !uoy evol I ",? 第二: 进行部分翻转,如果不是空格,则开始翻转单词。 #includestdio.h#include
将一句话里面的单词进行倒置,标点符号不倒换,比如一句话“ I love you!" 。 倒换后变成了” you! love I" ?。 算法思想:? 第一: 将字符串全盘倒置为:“ !uoy evol I ",? 第二: 进行部分翻转,如果不是空格,则开始翻转单词。 #include<stdio.h> #include<string.h> #define MAX 20 int main(void) { int i=0,j=0,flag=0,begin,end; char str[]="i come form tianjin.",temp; //char temp[MAX]; j=strlen(str)-1; printf(" string = %sn",str); //第一步是进行全盘翻转,将单词变成".nijnait morf emoc i" while(j>i) { temp=str[i]; str[i]=str[j]; str[j]=temp; j--; i++; } printf(" string = %sn",str); i=0; //第二步进行部分翻转,如果不是空格,则开始翻转单词 while(str[i]) { if(str[i]!=' ') { begin = i; while(str[i]&&str[i]!=' ') {i++;} i=i-1; end=i; } while(end>begin) { temp=str[begin]; str[begin]=str[end]; str[end]=temp; end--; begin++; } i++; } printf(" string = %sn",str); return 0; } 如果大家有更好更高效的算法,欢迎各位拍砖!!! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |