本文主要是介绍151. 翻转字符串里的单词 (strncat拼接函数,双指针left和right从末尾开始查找单词。),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 翻转字符串里的单词
给定一个字符串,逐个翻转字符串中的每个单词。
示例 1:
输入: “the sky is blue”
输出: “blue is sky the”
示例 2:
输入: " hello world! "
输出: “world! hello”
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
示例 3:
输入: “a good example”
输出: “example good a”
解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
//strncat拼接函数,双指针left和right从末尾开始查找单词。char * reverseWords(char * s){int length = strlen(s);char *res = (char *)malloc(sizeof(char) * (length + 1));res[0]='\0';int right = length; //指向空int left = length-1;for(left = length-1;left>=0;left--){if(s[left] == ' ') {//遇到空格,说明到下一个单词了right = left;}else if (left == 0 || s[left - 1] == ' ') { //left再左移一下,就到空格了,说明这个单词结束了if (0 == strlen(res)){strncat(res, &s[left], right - left);}else {strncat(res, " ", 1);strncat(res, &s[left], right - left);}}}return res;
}
这篇关于151. 翻转字符串里的单词 (strncat拼接函数,双指针left和right从末尾开始查找单词。)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!