本题要求编写函数,将输入字符串的前3个字符移到最后。

函数接口定义:

void Shift( char s[] );

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

裁判测试程序样例:

#include <stdio.h>
#include <string.h>#define MAXS 10void Shift( char s[] );void GetString( char s[] ); /* 实现细节在此不表 */int main()
{char s[MAXS];GetString(s);Shift(s);printf("%s\n", s);return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

abcdef

输出样例:

defabc

自己很久以前写的代码

void Shift( char s[] )
{char b[3];int n=strlen(s)-1;for(int i=0;i<3;i++)b[i]=s[i];for(int j=0;j<=n-3;j++)s[j]=s[j+3];for(int k=0;k<3;k++)s[n-2+k]=b[k];
}

回顾时,写的代码

void Shift( char s[] )
{int i,j;for(i=0;i<3;i++){char b=s[0];for(j=0;s[j+1]!='\0';j++)//字符串在你输入最后一个字符时,后面还有一个特殊字符(暂且称为特殊字符),即“\0”,电脑输出字符串时,遇到\0,就会停止输出,//循环结束时j的值为最后一个字符的下标值。s[j]=s[j+1];s[j]=b;}
}

对比两种,当然是后面那种比较好,代码量少,而且运行时间也比较短。

练习8-8 移动字母 (10分)相关推荐

  1. PTA6、输出10个不重复的英文字母 (10 分)

    6.输出10个不重复的英文字母 (10 分) 随机输入一个字符串,把最左边的10个不重复的英文字母(不区分大小写)挑选出来. 如没有10个英文字母,显示信息"not found" ...

  2. 6-3 写字母(*) (10分)

    请编写函数,将大写字母写入文件中. 函数原型 void WriteLetter(FILE *f, int n); 说明:参数 f 为文件指针,n 为字母数目(1 ≤ n ≤ 26).函数** 将前 n ...

  3. 7-9 把字符串中的大写字母改成小写字母 (10分)

    把字符串中的大写字母改成小写字母,其他字符不变. 输入格式: 输入一个长度不超过20的包含大小写母和数字的字符串. 输出格式: 输出大写字母改成小写字母后的字符串. 输入样例: 在这里给出一组输入.例 ...

  4. PTA 习题6.2 写字母* (10分)

    请编写函数,将大写字母写文件中. 函数原型 // 写字母 void WriteLetter(FILE *f, int n); 说明:参数 f 为文件指针,n 为字母数目.函数将前 n 个大写英文字母写 ...

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

    #include <stdio.h> #include <string.h>#define MAXS 10void Shift( char s[] );void GetStri ...

  6. C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)

    本题要求编写函数,将输入字符串的前3个字符移到最后. 函数接口定义: void Shift( char s[] ); 其中char s[]是用户传入的字符串,题目保证其长度不小于3:函数Shift须将 ...

  7. 7-123 空心字母金字塔 (10 分)输入一个大写的英文字母,输出空心的字母金字塔。

    7-123 空心字母金字塔 (10 分) 输入一个大写的英文字母,输出空心的字母金字塔. 输入格式: 一个大写英文字母. 输出格式: 一个空心的大写英文字母金字塔,其中第1层的"A" ...

  8. PTA 实验7-5 输出大写英文字母(10 分)

    PTA 实验7-5 输出大写英文字母(10分) 题目: 本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍:若无大写英文字母则输出"Not Found" ...

  9. 7-5 统计英文字母和数字字符 (10 分)

    7-5 统计英文字母和数字字符 (10 分) 本题要求编写程序,输入10个字符,统计其中英文字母.数字字符和其他字符的个数. 输入格式: 输入为10个字符.最后一个回车表示输入结束,不算在内. 输出格 ...

最新文章

  1. SSH访问控制,多次失败登录即封掉IP,防止暴力破解
  2. Random Forest(sklearn参数详解)
  3. 链表之删除双链表倒数第K个节点
  4. 【渝粤题库】陕西师范大学202101 公共政策学
  5. js二级下拉被flash档住的解决办法
  6. 谷歌浏览器开发调试工具中Sources面板 js调试等 完全介绍
  7. c++ list容器获取第n给元素_Java总结之容器家族--Collection*
  8. php识别中文编码并自动转换为UTF-8
  9. 【es】es 编译 jar hell!
  10. SVN ---文件加锁,执行clean up命令
  11. 随机森林 ---sklearn
  12. sqlbulkcopy是覆盖式更新吗_关于5G消息,这五点你知道吗?
  13. 扫雷外挂的设计与实现
  14. 判断一个数n能否同时被3和5整除。
  15. 服务器性能监控之New Relic 入门教程
  16. java怎么绘画坦克_坦克游戏教程一:使用java绘图功能绘制简单坦克
  17. 排名方法可用于分数排名,购买量排名等排名计算
  18. 汇报措辞:你懂得怎样向领导汇报吗(审阅、审批、批阅、批示、查阅)?
  19. 使用BOMC升级 lenovo Thinksystem 和system x系列服务器微码到最新
  20. Voxceleb2 视频数据集下载(国内链接)

热门文章

  1. Kingfisher Carthage Usage
  2. HTML+CSS简单实例(一)
  3. Android Retrofit2 动态(静态)添加请求头Header
  4. L2-025 分而治之(25 分)
  5. lvgl image
  6. angular 延迟时间
  7. Mac下安装tree
  8. javacv实现人脸识别——打开摄像头
  9. python正则表达式,任意数量的英文字母,怎么表示
  10. 数据库建模和设计的总结