任务和代码:
/*****************************************************************
File Name : daoxu
Author : 李杰 Date : 2016.12.11
Description : 翻转句子中单词的顺序,但单词内字符的顺序不变
******************************************************************/
#include <stdio.h>
void daoxu(char *p)
{
char *h = p;
while(*p != '\0')
{
p++;
}
p = p - 1;
char temp;
while(h <= p)
{
temp = *p;
*p = *h;
*h = temp;
h++;
p--;
}
}
void fanzhuan(char *p)
{
char *h = p;
char *q = p;
while(*h != '\0')
{
if(*h == ' ')
{
*h = '\0';
daoxu(q);
*h = ' ';
h++;
q = h;
}
else
{
h++;
}
}
}
int main()
{
char str[50] = {0};
printf("please input a string:\n");
gets(str);
daoxu(str);
fanzhuan(str);
puts(str);
return 0;
}
运行结果:
心得体会: 对字符串操作时候,我们也可以用指针来指向字符串的首地址,从而通过指针对字符串进行操作。