练习8-8 移动字母 (10分)

题目链接题源浙大版《C语言程序设计(第3版)》题目集

题目描述:
本题要求编写函数,将输入字符串的前3个字符移到最后。
函数接口定义:

void Shift( char s[] );
其中char s[]是用户传入的字符串,题目保证其长度不小于3;函数Shift须将按照要求变换后的字符串仍然存在s[]里。
输入样例:
abcdef
输出样例:
defabc

code:

#include <stdio.h>
#include <string.h>

#define MAXS 10

void Shift( char s[] ){
    int len=strlen(s);
    char t[4];
    for(int i=0;i<3;i++) t[i]=s[i];
    for(int i=0;i<len-3;i++) s[i]=s[i+3];
    for(int i=len-3;i<len;i++) s[i]=t[3-len+i];
}

int main()
{
    char s[MAXS];
    gets(s);//题目中省去部分
    Shift(s);
    printf("%s\n", s);

    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为AI助手,我并不具备图形界面的操作能力,但是我可以提供一些vue实现字母笔画练习的思路。 1. 定义字母列表,包括字母和对应的笔画。 2. 使用vue的v-for指令,将字母列表渲染到页面上。 3. 使用HTML5的canvas元素,绘制字母的笔画。 4. 给canvas元素添加鼠标事件,当鼠标在canvas上移动时,根据鼠标轨迹绘制用户的笔画。 5. 比较用户绘制的笔画与字母的笔画是否一致,给出相应的提示。 以下是一个简单的实现代码示例: HTML部分: ```html <div id="app"> <div class="letters"> <div v-for="(letter, index) in letters" :key="index" class="letter"> <div>{{ letter.char }}</div> <canvas :id="'canvas' + index" width="100" height="100"></canvas> <div>{{ letter.stroke }}</div> </div> </div> </div> ``` JS部分: ```javascript new Vue({ el: '#app', data: { letters: [ { char: 'A', stroke: '横 竖 横 上撇 下撇' }, { char: 'B', stroke: '横 竖 竖 弯钩 横' }, { char: 'C', stroke: '横 下撇 上钩' } ], canvasList: [] }, mounted() { this.initCanvas() }, methods: { initCanvas() { this.canvasList = [] for (let i = 0; i < this.letters.length; i++) { let canvas = document.getElementById('canvas' + i) let ctx = canvas.getContext('2d') ctx.font = '80px Arial' ctx.fillText(this.letters[i].char, 10, 80) this.canvasList.push(canvas) } } } }) ``` 其中,initCanvas方法用于初始化canvas元素,将字母绘制到canvas上,并将canvas元素存储到canvasList数组中。此时,页面上会显示字母和对应的笔画,以及canvas元素,但是还没有实现用户绘制笔画的功能。 接下来,我们需要添加鼠标事件,实现用户绘制笔画的功能。具体实现方法可以参考HTML5 Canvas教程。 最后,我们需要比较用户绘制的笔画与字母的笔画是否一致。比较的方法可以使用一些字库的API,例如汉字笔画查询API,将字母的笔画和用户绘制的笔画传入API中进行比较,得出相似度分数,根据分数给出相应的提示。 以上是一个简单的实现思路,具体的实现方式和细节可以根据需求和技术水平进行调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值