eg:输入:i like china.
输出:china. like i
关于这个题呢?想必大家有很多写法,在这里小编为大家提供一种方法.
整体思路:
1.先将整个字符串倒叙:i like china.->.anihc ekil i
2.将倒叙后的每一块单词再倒叙:.anihc->china.
想必大家都发现了,倒叙整个字符串和倒叙每一块是一样的,那么我们不妨写一个倒叙的函数在这里用reserve表示!
整体代码如下:具体细节代码中标识
void reserve(char* left, char* right) { //left:最左边元素 //right:最右边元素 while (left < right) { char tmp = *left; *left = *right; *right = tmp; left++; right--; } } int main() { char arr[100] = { 0 }; //输入 gets(arr); //倒叙字符串 int len = strlen(arr); reserve(arr, arr + len - 1); //倒叙每一组单词 char* cur = arr; while (*cur) { //*strat开始头一个元素 char* strat = cur; while (*cur != ' ' && *cur != '\0') { cur++; } reserve(strat, cur - 1); while (*cur == ' ') { cur++; } } //输出 printf("%s", arr); return 0; }
这道题就这样完成啦!有哪点看不懂的欢迎私信或者在评论区提问!!!