欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > C语言 ——— 将一句英语短句中的单词进行倒置

C语言 ——— 将一句英语短句中的单词进行倒置

2024/10/24 6:37:51 来源:https://blog.csdn.net/weixin_55341642/article/details/140421915  浏览:    关键词:C语言 ——— 将一句英语短句中的单词进行倒置

目录

题目要求

代码实现


题目要求

将一句英语短句中的单词进行倒置,标点符号不倒置

如:

输入:"I like chongqing very much,"

输出:"much, very chongqing like I"


代码实现

#include<stdio.h>
#include<string.h>
//逆置函数
void reverse(char* left, char* right)
{while (left < right){char tmp = *left;*left = *right;*right = tmp;left++;right--;}
}
int main()
{//输入char arr[100];gets(arr);//逆置字符串int len = strlen(arr);reverse(arr, arr + len - 1);//逆置各个单词char* start = arr;char* cur = arr;while (*cur != '\0'){//找到每个单词的尾地址while (*cur != ' ' && *cur != '\0')cur++;//逆置每个单词reverse(start, cur - 1);start = cur + 1;if (*cur == ' ')cur++;}//输出printf("%s\n", arr);return 0;
}

代码解析: 

先逆置整个字符串,再逆置各个单词

举例说明:

"I like chongqing very much,"

逆置整个字符串

",hcum yrev gniqgnohc ekil I"

逆置各个单词

"much, very chongqing like I"

解析:void reverse(char* left, char* right)

封装一个逆置函数,用来逆置 整个字符串各个单词

解析:int len = strlen(arr);

字符串的长度

解析:reverse(arr, arr + len - 1);

逆置整个字符串,传递字符串的 起始地址arr,和字符串的 结束地址arr + len(字符串长度) - 1

解析:while (*cur != '\0') 及内部循环

start指针 指向单词首地址,cur指针 找空格,找到空格后利用 reverse函数 逆置

逆置完一个单词后,start指针 指向下一个单词的首地址,利用外部 while循环cur指针 重复找空格,最后完成所有单词的逆置 

代码验证:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com