倒置一个字符串里面的单词
发布时间:2020-12-13 19:42:09 所属栏目:百科 来源:网络整理
导读:面试宝典上的一道题。 题目:倒置一个字符串里面的单词 例子:I am from wuhan. ------- wuhan. from am I 思路:先倒置整个字符串,然后倒置每个单词。 //倒置一个字符串中的单词#includestdio.h#includestring.h#define BUF 100void StringReverse(char* i
面试宝典上的一道题。 题目:倒置一个字符串里面的单词 例子:I am from wuhan. -------> wuhan. from am I 思路:先倒置整个字符串,然后倒置每个单词。 //倒置一个字符串中的单词 #include<stdio.h> #include<string.h> #define BUF 100 void StringReverse(char* input); int main(void) { puts("Enter a string:"); char input[BUF]; //fgets(input,BUF,stdin); //此函数会将回车一起算作字符串的输入 gets(input); StringReverse(input); return 0; } void StringReverse(char* input) { int i; int j = strlen(input)-1; int temp=0; for(i=0;i<j;i++,j--) { //input[i]^=input[j]^=input[i]^=input[j]; //a^a=0 temp=input[i]; input[i]=input[j]; input[j]=temp; } printf("inverse string:%sn",input); int begin; int end; i=0; while(input[i]) { if(input[i]!=' ') { begin =i; while(input[i]!=' '&&input[i]!=' ') //注意结束符的位置所在的循环!!! { i++; } i=i-1; end=i; } while(begin<end) { temp = input[begin]; //注意交换的不索引 input[begin] = input[end]; input[end] = temp; begin++; end--; } i++; } printf("output string:%sn",input); }
fgets(input,stdin)函数的输出结果: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |