输出一行,代表chas的左半区 。
输出一行,代表替换后的字符串。
a b c
a%20%20b%20%20%20%20c
时间复杂度,额外空间复杂度。
#include <stdio.h> #include <string.h> #define MAXLEN 300001 int main(void) { char str[MAXLEN]; int len = 0, spaceNum = 0; fgets(str, MAXLEN, stdin); str[strlen(str) - 1] = '\0'; /* 将换行符替换为NULL */ while (str[len] != '\0') { if (str[len++] == ' ') { spaceNum++; } } int index = len + (spaceNum << 1) - 1; for (int i = len - 1; i >= 0; i--) { if (str[i] == ' ') { str[index--] = '0'; str[index--] = '2'; str[index--] = '%'; } else { str[index--] = str[i]; } } puts(str); return 0; }