請列舉“This is a book”中間有空格的連續字串,經過下列程式執行後,
兩個printf 的輸出內容。(25 分)
#include <stdio.h>
#include <string.h>
void reverse(char str[], int start, int end) {
char temp;
while (start < end) {
temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
int main() {
char str[] = "This is a book";
int len = strlen(str);
reverse(str, 0, len - 1);
printf("%s\n", str);
int word_start = 0;
for (int i = 0; i < len; i++) {
if (str[i] == ' ') {
reverse(str, word_start, i - 1);
word_start = i + 1;
}
}
reverse(str, word_start, len - 1);
printf("%s\n", str);
return 0;
}