C语言程序实现:"student a am I"转换为"I am a student".

C语言:如何将字符串“student a am I”转换为“I am a student” 实验环境: Windows 8、Visual Studio 2013 实验语言: C语言 实验内容: 现有一个字符串“student a am I”,想将它转换为正常语序“I am a student”,重点考察两个内容,其一:字符串逆置,其二,以空格为界限,将空格之间的字符串认为是一个整体 实验代码:#include<stdio.h> #include<stdlib.h> #include< 阅读详情

题目:

有一个字符数组的内容为:“student a am i”,
请你将数组的内容改为"i am a student".
要求:
不能使用库函数。
只能开辟有限个空间(空间个数和字符串的长度无关)。

分析:

先拿到这个题目第一时间想到的是逆序也就是 i ma a tneduts;随后是不是有些懵逼,继续观察;在逆序的基础上我们将每个单词再次逆序(i am a student)是不是正确了;

  1. 将整个字符串进行逆序
  2. 将‘ ’或‘\0’作为分隔符,分隔单词
  3. 再将每个字符进行逆序
  4. 动手

逆序函数:将字符串与单词逆序所以函数相同,我们所要知道的就是这个字符串的起始(left)与结束(right)
eg:
代码实现:

void ReversveSwap(char *left,char *right)
{
	char temp = 0;
	//assert(left != NULL);
	//assert(right !=NULL);    我看过网上的答案很多都用了断言,我觉得根本不用,因为不存在为null的哪一种情况
	while(left < right)
	{
		temp = *left;
		*left = *right;
		*right = temp;
		left++;
		right--;
	}
}

将字符串空格分隔再逆序的代码:

char *reverve(char *p)
{
	int len = strlen(p);
	char * start = p;
	char *end = NULL;
	char *ret = p;
	end = p+len-1;
	ReverveSwap(start,end); //将整个字符串逆序
while(*p)
{
	start = p;
	while((*p != ' ')&&(*p != '\0'))
	{
		p++;
	}
	end = p-1;
	ReverveSwap(start,end);
	if(*p == ' ')
		p++;
}
	return ret;
}

完整代码附上:

结果呈上

一个例子逐层解析Transformer模型:从“I am student“到“我 是 学生” 意味着,在更新 “student” 这个词的含义时,模型会把 32% 的权重放在 “I” 的信息上,仅 1% 的权重放在 “am” 上,以及 67% 的权重放在 “student” 自身的信息上。: 接收原始的、带有位置信息的输入序列,并通过一系列计算,为每个词生成一个充分理解了全局上下文的最终表示——: 根据刚刚计算出的注意力权重,加权聚合所有词的“内容”(V向量),生成新的、富含上下文的向量。: 计算每个词的“查询”(Q)与句子中所有词的“标签”(K)之间的原始相关性分数。在这里,我们预先设定它们。 阅读详情

相关推荐

C语言倒序输出 I am a Student.

NULL 博文链接:https://indiff.iteye.com/blog/1522298

C语言实现:有一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student".

有一个字符数组的内容为:“student a am i” 请你将数组的内容改为"i am a student". 要求: 不能使用库函数。 只能开辟有限个空间(空间个数和字符串的长度无关)。 student a am i i ma a tneduts i am a student 注释在代码中,一看就会,我觉得写前面,你们也不看。反正我看别人的直接看代码 #include<stdio.h...

Stephen_curry_66的博客 345

基于Dify构建银行智能客服:从意图识别到多RAG架构的实战解析

本文深入解析了如何利用Dify平台构建银行智能客服系统。从传统客服痛点出发,详细阐述了基于意图识别精准分类用户需求,并通过多RAG架构解决知识混淆问题,实现高效、准确的业务响应。文章重点介绍了结合工具调用实现业务流程自动化,并强调了数据本地化部署、内容安全过滤等银行级安全合规实践,为金融行业AI应用提供了实战指南。

yog99的博客 926

【C语言编程】将数组"student a am i"改为"i am a student"

题目: 有一个字符数组的内容为:“student a am i”, 请将数组的内容改为"i am a student". 要求: 不能使用库函数, 只能开辟有限个空间(空间个数和字符串的长度无关) 思路:先将数组内容整体逆置,再将每个单词字母逆置,例如student a am i i ma a tneduts i am a student 具体编辑如下: #include<stdio.h&g...

qq_45239139的博客 297

信奥编程启蒙 3068:【例13.3】时间差

现在给出一个时间,单位是秒,要求按照电子表格式输出,输出保证不会超过 2424 小时。3067:【例13.2】 电子表。把时间转化成电子表格式输出。电子表上的时间显示方法形如。

900

Windsurf 入门指南:从安装到实战(免费AI IDE新选择)

本文是Windsurf AI IDE的详细入门指南,涵盖从下载安装到核心功能实战的全过程。通过对比分析,文章指出Windsurf凭借其免费、小白友好的特性及强大的上下文感知能力,成为学习编程和提升开发效率的新选择,特别适合零基础开发者和寻求高效AI编程工具的开发者。

weixin_29237635的博客 854

【C语言】将student a am i翻转成i am a student。

C语言

SuLiJuan66的专栏 1447

Mplus实战:三变量随机截距交叉滞后模型(RI-CLPM)语法详解与扩展

本文详细解析了Mplus中三变量随机截距交叉滞后模型(RI-CLPM)的构建原理与语法实现。通过将变量分解为稳定的个体间差异与动态的个体内波动,模型能更纯净地揭示多变量间的纵向交互影响。文章以工作压力、睡眠质量与工作满意度为例,提供了完整的语法模板、关键参数设置(如NOCOV命令、残差相关)及结果解读指南,帮助研究者避开常见误区,稳健分析复杂动态关系。

wdx0123456的博客 926

把student a am i 变成 i am a student(两种方法)

student a am i 变成 i am a student 方法1:指针 方法2:数组 student a am i 变成 i am a student 方法1:指针 #include &amp;amp;amp;lt;stdlib.h&amp;amp;amp;gt; #include &amp;amp;amp;lt;stdio.h&amp;amp;amp;gt; #include &amp;amp;amp;lt;string.h&amp;amp;amp;gt; void f

csdn_kou的博客 3052

Modbus TCP 通信(C#)

【代码】Modbus TCP 通信(C#)

weixin_56229359的博客 1150

回归预测 | MATLAB实现MPR多元多项式回归

回归预测 | MATLAB实现MPR多元多项式回归

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 1645

“I am a student”反转成“student a am I”

方法是先反转整个字符串,然后再反转字串。譬如先将“I am a student”反转为“tneduts a ma I”,然后再对每个字串(空格分割)反转一次。思想就那么简单吧。 第一种: #include void main() { char str[]="you are a student"; printf(str); printf("\n");

zwl492454828的专栏 2676

在anaconda环境中使用conda命令安装cuda、cudnn、tensorflow(-gpu)、pytorch

文章目录在anaconda环境中使用conda命令安装cuda、cudnn、tensorflow(-gpu)、pytorch结论参考资料解释相关命令版本关系版本选择总结:实验 在anaconda环境中使用conda命令安装cuda、cudnn、tensorflow(-gpu)、pytorch 结论 使用conda虚拟环境 使用conda命令安装 最重要的是版本关系(python、cuda、cudnn、pytor或者tensorflow框架)的对应。 参考资料 tensorflow2.x安装 理清GPU、

纸上得来终觉浅,绝知此事要躬行! 3万+

C语言: 有一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student".

题目:有一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student".     要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。 分析:分为两大部分:①把整个字符数组逆置                                     ②:每个单词逆置 具体代码如下: #include &amp;lt;stdio.h...

qq_42270373的博客 322

手把手教你学simulink实例:基于Simulink的风力发电系统建模与仿真

风力发电作为一种清洁、可再生的能源形式,近年来得到了快速发展。风力发电系统的性能优化和控制策略设计对于提高发电效率、降低运行成本具有重要意义。本项目旨在使用MATLAB/Simulink平台,对风力发电系统进行建模与仿真,研究其动态特性,并验证控制策略的有效性。通过建立风力发电机、传动系统、发电机及电力电子变换器等子系统的模型,实现对风力发电系统的全面分析。

MHD0815的博客 558

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

将字符串“I am a student.”逆序输出为“student. a am I”

给到一串字符“I am a student.”,将其输出为“student. a am I”。 整体思路为先将整个字符串逆序为 ‘’.tneduts a ma I" 然后再将每个单词进行逆序转换为 “student. a am I” 那么我们只需先写出将整个字符串逆序的函数就已经将问题解决了大半 void reserve_string(char* start, char* end) { whil...

weixin_44405652的博客 4481

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

将"i am a student"转换成" student a am i"

整体思路:1.先将整个字符串逆序                   2.再将整个单词逆序 void Reverse_word(char *left,char *right) { assert(left); assert(right); while (left < right) { char tmp = *left; *left = *right; *right = tmp

baidu_37964044的博客 2839

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【c语言】把student a am i 变成 i am a student

// 把student a am i 变成 i am a student //思想:把每个单词翻转,然后再把整体翻转 #include #include //把每次解析出来的单词翻转 void fanw( char *l,char *r ) { char* left = l; char* right = r; char temp; while( left < right ) {

zhaoyaqian552的专栏 1132

I am a Student转换为Student a am I

“I am a Student"转换为"Student a am I” 问题思路: (1)先整体翻转 (2)再逐个单词翻转 #include&amp;lt;stdio.h&amp;gt; #include&amp;lt;string.h&amp;gt; #include&amp;lt;stdlib.h&amp;gt; #include&amp;lt;assert.h&amp;gt; char *change_math(char *str, int len) ...

weixin_42617262的博客 1268

day 1提高:I am a student转换为student a am I

问题描述:输入一串任意一局英语将其单词翻转 例如: 输入:I am a student 输出:student a am I 思路:(1)首先将整个句子反转,即I am a student→tneduts a ma I            (2)将每个单词逐个反转,即tneduts a ma I→student a am I#include #include void ExchangeS

Flydream丶的博客 334

C语言:有一个字符数组的内容为:student a am i, 请你将数组的内容改为i am a student

此题的解决思路为:首先将"student a am i"整体逆置,则得到" i ma a tneduts",然后在这个字符串中,将每一个字符逆置即可得到"i am a student"。 思路详解: 逆置整个字符串和逆置一个单词我们可以定义一个swap函数,在swap函数内部完成逆置。我们把需要把逆置部分的起始元素地址和结束元素地址传递给swap函数,此时用一个左指针left接收逆置部分的起始...

ETalien_的博客 781

字符数组为:"i am a student",将数组改为"student a am i

有一个字符数组的内容为:"i am a student",请你将数组的内容改为"student a am i".要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。 #include<stdio.h> #include<string.h> int MyStrlen(char *str) { int count = 0; while (*s...

weixin_33923148的博客 293

算法题——将student a am i转化为i am a student

问题描述:   将student a am i转化为i am a student (空间复杂度为1) #include int main() { char str[] = "student a am i"; char ch; int i = 0, j = 0, k = 0, len = 0; while (str[i] != '\0') { k = i; j = i;

only_do_IT 899

将字符串student a am i反转为 i am a student

#include <stdio.h> #include <string.h>void reserve_string(char *l, char *r) { while(l < r) { char tmp = *l; *l = *r; *r = tmp; l ++; r --; } } void r

yangrujing的专栏 2278

(C语言)有一个字符数组的内容为:"student a am i", 请将数组的内容改为"i am a student". 要求: 不能使用库函数。

有一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student". 要求: 不能使用库函数。

爱上小公举 423
上一篇: c语言之指针基础概念
下一篇: C语言程序实现:十六进制转换为八进制(绝对用心仔细)
Young-_-D
博客等级 码龄8年 62粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值