题目:将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I
输入描述:
每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100
输出描述:
依次输出倒置之后的字符串,以空格分割
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <string.h>void reverse(char* left, char* right){while (left < right){char tmp = *left;*left = *right;*right = tmp;left++;right--;}}void reverseword(char* str){int len = strlen(str);if (len <= 1)return;//整体逆置reverse(str, str + len - 1);//按照单词进行局部逆置char* cur = str;while (*cur){//查找单词的边界:空格或者'\0'char* start = cur;while (*cur != ' '&&*cur != '\0')++cur;//当前单词的区间:[start,cur)//逆转单词reverse(start, cur - 1);//查找下一个单词的区间++cur;}}void test(){char str[101] = {0 };gets(str);reverseword(str);//reverse(str, str + strlen(str) - 1);printf("%s\n", str);}int main(){test();return 0;}