#include #include // 定义函数copykn,返回类型为char类型的指针,接受四个参数 char* copykn(char* s1, char* s2, int n, int k) { // 定义一个变量i,初始化为n int i = n; // 在s1中查找从位置n开始的k个字符 // 当i小于等于s1字符串的长度,且i位置上不是'\0',并且还没有复制k个字符时,执行以下操作 while (i <= strlen(s1) && s1[i] != '\0' && i < n + k) { // 将s1的第i个字符复制到s2数组中的对应位置 s2[i - n] = s1[i]; // i自增1 i++; } // 返回s2的首地址 return s2; } // 主函数 int main() { // 定义字符串s1和s2,分别用于存储输入的字符串和输出的字符串 char s1[10005], s2[10005]; // 定义整型变量n和k,分别表示从第n个字符开始,复制最多k个字符 int n, k; // 从键盘输入字符串s1 gets(s1); // 从键盘输入整型变量n和k scanf("%d %d", &n, &k); // 调用函数copykn,将从s1的第n个字符开始的最多k个字符复制到s2中,并将s2的首地址输出 puts(copykn(s1, s2, n - 1, k)); // 注意题目中的n是从1开始计数的,而在字符串中我们是从0开始计数的,所以要将n减去1 // 程序结束 return 0; }