题目: 编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,及将句子中的单词位置倒置,而不改变单词内部结构.
分析:利用二维数组存储字符串,再利用指针数组指向二维数组,改变指针数组中元素的次序,从而将句子单词倒置
#include<stdio.h>
void reversestr(char *str[],int n);
int main()
{
int i;
char str[4][10] = { "I" ,"am","from" ,"shanghai" };
char *str1[4];
for (i = 0; i < 4; i++)
str1[i] = str[i];
reversestr(str1,4);
printf("倒置后的句子:");
for (i = 0; i < 4; i++)
printf("%s ", str1[i]);
return 0;
}
void reversestr(char *str[],int n)
{
char *p;
int i;
for (i = 0; i < n / 2; i++)
{
p = str[i];
str[i] = str[n - i - 1];
str[n - i - 1] = p;
}
}
示例结果:
倒置后的句子:shanghai from am I 请按任意键继续. . .