翻转一个句子且不翻转单词。
如:输入:i love my mother.
输出:mother. my love i
解题思路:
1. 先翻转整个句子。
2. 翻转每一个单词。
注:翻转单词时,我们创建两个指针用来指向单词的开头与结尾,然后进行翻转。
进行下一个单词时,开始的指针=少一个结尾指针加一即可。
遇到 结束。
代码:
翻转一个句子,且不反转单词 · abc66bb · 风夏/c语言初级学习 - Gitee.com
#include结语:void reverse(char* start, char* end) { char tmp = '0'; while (start < end) { tmp = *start; *start = *end; *end = tmp; start++; end--; } } int main() { char input[100] = "0"; gets(input); int len = strlen(input); //翻转句子 reverse( input, input+len-1); //翻转单词 char* start = input; char* end = input; do { if (*end == ' ' || *end == ' ') { reverse(start, end - 1); if (*end == ' ') break; start = end + 1; end = start; } else { end++; } } while (*end != " "); printf("%sn", input); return 0; }
写啦这么多,希望大家点点赞,多多支持。



