编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,及将句子中的单词位置倒置,而不改变单词内部结构.

来源:互联网 发布:java c3p0连接池 编辑:程序博客网 时间:2024/05/21 22:32

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


#include <stdio.h>#include <string.h>int main(){char str[]="I am from shanghai";puts (str);char tmp;char *p1 = str;char *p2 = str + strlen(str) -1;while (p1<p2){    tmp = *p1;*(p1++) = *p2;*(p2--) = tmp;}char *p3 = NULL;p1 = str;p2 = str;while (*p2){if (*p2 == ' '){p3 = p2 - 1;while (p1<p3){    tmp = *p1;*(p1++) = *p3;*(p3--) = tmp;}p1 = p2 + 1;}p2++;}p3 = p2 - 1;while (p1<p3){        tmp = *p1;*(p1++) = *p3;*(p3--) = tmp;}puts (str);return 0;}

这题要定义三个指针,将字符串按空格分成几个小字符串,用两个指针分别指向小字符串的首尾并实现其逆序,还有一个指针用来保存位置。

阅读全文
1 0