#include <stdio.h>
#include <string.h>
void *nizhi(char *a);
int main(int argc, const char * argv[]) {
char a[20] = {"this is book"};//初始化一个数组,单词以' '分割;
printf("%s\n", a);
nizhi(a);
printf("%s\n", a);
return 0;
}
void *nizhi(char *a) {
int len = strlen(a) - 1;
for (int i = 0; i <= len / 2; i++) {
int b = *(a + i);
*(a + i) = *(a + len - i);
*(a + len - i) = b;
}//第一次翻转;
int i = 0, j = 0;
for (i = 0; *(a + i) != '\0'; i++)
{
if (*(a + i) != ' ')//找到分割单词的' '
{
j = i;
while (*(a + j) != ' ' && *(a + j) != '\0')
{
j++;//记录单词长度;
}
for (int k = i, l = j - 1; k < l; k++, l--)
{
char temp = *(a + k);
*(a + k) = *(a + l);
*(a + l) = temp;
}
i = j;
}
}//二次翻转,以单词为单位进行翻转
}
定义一个字符串,每个单词以空格分隔,C语言实现字符串中单词逆置。