基于上一篇的反转字符串
void reverseString(char *str, int start, int end) {
while (start < end) {
// 交换前后两个字符,同时移动指针
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
void reverseWords(char *str) {
if (str == NULL) {
return;
}
int start = 0;
int strLength = (int)strlen(str);
// 将字符串整体反转
reverseString(str, 0, strLength - 1);
for (int i = 0; i < strLength; i++) {
if (i == strLength - 1 || str[i+1] == *" ") {
reverseString(str, start, i);
start = i + 2;
}
}
return;
}
网友评论