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

xiaoxiao2021-02-28  109

题目: 编写一个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; } 这题要定义三个指针,将字符串按空格分成几个小字符串,用两个指针分别指向小字符串的首尾并实现其逆序,还有一个指针用来保存位置。

转载请注明原文地址: https://www.6miu.com/read-61616.html

最新回复(0)