解题思路:
有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。首先定义一个n表示字符串包含的字符个数,然后定义一个字符数组str保存字符串(在C语言中,没有字符串数据类型,所以字符串需要保存在字符数组中),然后定义一个m表示从字符的第m个字符开始往后生成一个新的字符串。在代码中用循环输出新产生的字符串,从m-1开始循环是因为在数组中,下标是从0开始计的,所以我们平时说的第m个数在数组中也就是第m-1个数。
注意事项:
在本道题中,输入字符串的时候我没有使用gets直接接受是因为gets和scanf连用时会出现错误,为什么会出现问题呢?我们以本道题为例来解释这一问题:
在代码中,首先我们用scanf接受一个数字6作为n的值,但是我们并不是只输入了一个数字6,还有一个回车。回车是scanf结束的标志,但是却不被scanf接受,那么多出来的回车去哪了呢,如果用gets来输入字符串,那么第一个scanf结束时输入的回车就回被get接受,但是回车也是gets结束的标志,然后第二步输入的字符串就回被下一行的scanf接受,但是这一行的scanf接受的应该是一个整数,但是我们却传入了一个字符串,所以就会出错。因此这里最好不要使用gets。可以直接使用scanf("%s",&str);来接受一个字符串。
参考代码:
#include<stdio.h> int main() { int n; char str[100]; int m; scanf("%d",&n); scanf("%s",&str); scanf("%d",&m); for(int i=m-1;i<n;i++) { printf("%c",str[i]); } return 0; }
0.0分
26 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复