#include<stdio.h>
#include<string.h>
#include<ctype.h>
void Swap(char* para1, char* para2);
void ReverseWord(char* word, int head, int tail);
char* reverseWords(char* s);
int main()
{
char s[40] = "you are a boy";
printf("%s\n", reverseWords(s));
return 0;
}
/*
* 双指针交换字符串首尾
*/
char *reverseWords(char *s)
{
int head = 0;
for (int i = 0; i < strlen(s); i++) {
if (isspace(s[i])) {
ReverseWord(s, head, i - 1);
head = i + 1;
}
}
ReverseWord(s, head, strlen(s) - 1);
return s;
}
void ReverseWord(char *word, int head, int tail)
{
while (head < tail) {
Swap(&word[head], &word[tail]);
head++;
tail--;
}
}
void Swap(char *para1, char *para2)
{
char temp = *para1;
*para1 = *para2;
*para2 = temp;
}
【Code】557. 反转字符串中的单词 III
最新推荐文章于 2024-04-24 21:12:58 发布