李洋疯狂C语言之将”you are come from shanghai ”倒置为”shanghai from come are you”,将句子中的单词位置倒置,而不改变单词内部结构

来源:互联网 发布:金融行业分类 知乎 编辑:程序博客网 时间:2024/05/18 03:04

题目: 编写一个C函数,将”you are come from shanghai ”倒置为”shanghai from come are you”,及将句子中的单词位置倒置,而不改变单词内部结构

#include <stdio.h>#include <string.h>void change(char *p1, char *p2);//函数声明int main(){    char str[] = {"you are come from shanghai"};    char* p1 = str;        char* p2 = str + strlen(str) - 1;    char* p3 = NULL;    change(p1, p2);      //全部逆序先    p2 = str;            //p1,p2全部指向字符串开头    while (*p2)          //p2向前移动,未到‘\0’时执行循环    {        if (' ' == *p2)  //遇到空格,则将p1到p3间的逆序        {            p3 = p2 - 1;            change(p1, p3);            p1 = p2 + 1;   //p2遇到空格后,p1指向空格后第一个单词        }        p2++;            }    if (0 == *p2)         //当p2到最后,将最后一个单词逆序    {        p3 = p2 - 1;        change(p1, p3);    }    puts(str);            //输出变换后的字符串    return 0;}void change(char *p1, char* p2)     //执行逆序{    char tmp;    while (p1 < p2)    {        tmp = *p1;        *(p1++) = *(p2);        *(p2--) = tmp;    }}
阅读全文
0 0
原创粉丝点击