实验8-2-3 删除字符(20 分)
本题要求实现一个删除字符串中的指定字符的简单函数。
函数接口定义:
1 | void delchar( char *str, char c ); |
其中char *str
是传入的字符串,c
是待删除的字符。函数delchar
的功能是将字符串str
中出现的所有c
字符删除。
裁判测试程序样例:
1 | #include <stdio.h> |
输入样例:
1 | a |
输出样例:
1 | hppy new yer |
本题要求实现一个删除字符串中的指定字符的简单函数。
1 | void delchar( char *str, char c ); |
其中char *str
是传入的字符串,c
是待删除的字符。函数delchar
的功能是将字符串str
中出现的所有c
字符删除。
1 | #include <stdio.h> |
1 | a |
1 | hppy new yer |
本题要求编写函数,将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。
1 | void strmcpy( char *t, int m, char *s ); |
函数strmcpy
将输入字符串char *t
中从第m
个字符开始的全部字符复制到字符串char *s
中。若m
超过输入字符串的长度,则结果字符串应为空串。
1 | #include <stdio.h> |
1 | 7 |
1 | new year |
报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。
本题要求编写函数,给出每个人的退出顺序编号。
1 | void CountOff( int n, int m, int out[] ); |
其中n
是初始人数;m
是游戏规定的退出位次(保证为小于n的正整数)。函数CountOff
将每个人的退出顺序编号存在数组out[]
中。因为C语言数组下标是从0开始的,所以第i
个位置上的人是第out[i-1]
个退出的。
1 | #include <stdio.h> |
1 | 11 3 |
1 | 4 10 1 7 5 2 11 9 3 6 8 |
本题要求实现一个对数组进行循环右移的简单函数:一个数组a中存有$n(\gt 0)$个整数,将每个整数循环向右移$m(\geq 0)$个位置,即将a中的数据由$\left(a_{0} a_{1} \cdots a_{n-1}\right)$变换为$\left(a_{n-m} \cdots a_{n-1} a_{0} a_{1} \cdots a_{n-m-1}\right)$(最后m个数循环移至最前面的m个位置)。
1 | int ArrayShift( int a[], int n, int m ); |
其中a[]
是用户传入的数组;n
是数组的大小;m
是右移的位数。函数ArrayShift
须将循环右移后的数组仍然存在a[]
中。
1 | #include <stdio.h> |
1 | 6 2 |
1 | 5 6 1 2 3 4 |
本题要求实现一个字符串逆序的简单函数。
1 | void f( char *p ); |
函数f
对p
指向的字符串进行逆序操作。要求函数f
中不能定义任何数组,不能调用任何字符串处理函数。
1 | #include <stdio.h> |
1 | Hello World! |
1 | !dlroW olleH |
本题要求实现一个在数组中查找指定元素的简单函数。
1 | int search( int list[], int n, int x ); |
其中list[]
是用户传入的数组;n
(≥0)是list[]
中元素的个数;x
是待查找的元素。如果找到
则函数search
返回相应元素的最小下标(下标从0开始),否则返回−1。
1 | #include <stdio.h> |
1 | 5 |
1 | index = 1 |
1 | 5 |
1 | Not found |
本题要求实现一个用选择法对整数数组进行简单排序的函数。
1 | void sort( int a[], int n ); |
其中a
是待排序的数组,n
是数组a
中元素的个数。该函数用选择法将数组a
中的元素按升序排列,结果仍然在数组a
中。
1 | #include <stdio.h> |
1 | 4 |
1 | After sorted the array is: 1 5 6 7 |
Update your browser to view this website correctly. Update my browser now