一个字符串,压缩其中的连续空格为1个后,对其中的每个字串逆序打印出来。比如"abc efg hij"打印为"cba gfe jih"。
#include <stdio.h>
#include <stdlib.h>
char* composeStr(char* src) {
int len = strlen(src);
char* dest = calloc(sizeof(char), len + 1);
//i源字符串遍历下标, phaseLen单词长度,step目的数组存储下标
int i = 0, phaseLen = 0, step = 0;
while (i <= len) {
if (*(src + i) == ' ' || *(src + i) == '\0') {
int k = 1;
while (phaseLen) {
dest[step] = *(src + i - (k++));
step++;
phaseLen--;
}
if (i < len) {
dest[step] = ' ';
step++;
}
do {
i++;
} while (*(src + i) == ' ');
} else {
i++;
phaseLen++;
}
}
return dest;
}