练习8-8 移动字母

本题要求编写函数,将输入字符串的前3个字符移到最后。
在这里插入图片描述
我的代码

void Shift(char s[]){
    int i,j,count=0;
    char a;
    for(i=0;i<MAXS;i++){
        if(s[i]!='\0')
            count++;
        if(s[i]=='\0')
            break;
    }
    for(i=0;i<3;i++){
        a=s[0];
        for(j=0;j<=count-1;j++){
            s[j]=s[j+1];
        }
        s[count-1]=a;
    }
}

count起到记录字符串长度的作用。
在这里插入图片描述

如果没有if(s[i]==’\0’) break;的话,count的值就相当于MAXS-1,那么得出的答案只有在字符串长度超出MAXS的情况下正确。在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值