在C語言中,如何編寫反轉行中字詞的程式?創建一個原始檔案:program_to_reverse_words_in_line.c,參考以下實現代碼 -
#include <stdio.h>
#include <string.h>
int string_length(char s[]) {
int i = 0;
while (s[i] != '\0')
i++;
return i;
}
void string_reverse(char st[]) {
int i, j, len;
char ch;
j = len = string_length(st) - 1;
i = 0;
while (i < j) {
ch = st[j];
st[j] = st[i];
st[i] = ch;
i++;
j--;
}
}
int main(void) {
char line[] = "Maxsu is one of the five wonders of the world";
char reverse[100] = "", temp[50];
int i, j, n;
n = string_length(line);
for (i = 0; i < n; i++) {
for (j = 0; i < n && line[i] != ' '; ++i, ++j) {
temp[j] = line[i];
}
temp[j] = '\0';
string_reverse(temp);
strcat(reverse, temp);
strcat(reverse, " ");
}
printf("Original - %s\n", line);
printf("Reversed - %s\n", reverse);
return 0;
}
執行上面示例代碼,得到以下結果 -
Original - Maxsu is one of the five wonders of the world
Reversed - usxaM si eno fo eht evif srednow fo eht dlrow