用c语言写程序,从键盘输入一个字符串,编写一个函数,将此字符串中从第m个字符开始的n个字符复制成另一个字符串。用指针实现
时间: 2024-03-01 16:51:07 浏览: 101
好的,以下是用C语言编写的程序,可以实现从键盘输入一个字符串,然后将此字符串中从第m个字符开始的n个字符复制成另一个字符串,用指针实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void copy_string(char *dest, char *src, int m, int n) {
int i;
// 将指针src指向第m个字符
src += m - 1;
for (i = 0; i < n && *src != '\0'; i++) {
*dest = *src;
dest++;
src++;
}
*dest = '\0'; // 复制完成后在最后加上字符串结束符'\0'
}
int main() {
char str1[100], str2[100];
int m, n;
printf("请输入一个字符串:");
gets(str1);
printf("请输入要复制的起始位置和长度(用空格隔开):");
scanf("%d %d", &m, &n);
copy_string(str2, str1, m, n);
printf("复制后的字符串为:%s\n", str2);
return 0;
}
```
在这个程序中,我们定义了一个`copy_string`函数,它接受四个参数:`dest`表示目标字符串的指针,`src`表示源字符串的指针,`m`表示要复制的起始位置,`n`表示要复制的长度。在函数内部,我们首先将指针`src`指向第`m`个字符,然后通过循环将指针`src`指向的字符复制到指针`dest`指向的位置。复制完成后,我们在`dest`指向的最后一个字符处加上字符串结束符`\0`。
在`main`函数中,我们首先定义了两个字符数组`str1`和`str2`,分别用于存放输入的字符串和复制后的字符串。然后通过调用`gets`函数从键盘输入一个字符串,并通过`scanf`函数从键盘输入要复制的起始位置和长度。最后,我们调用`copy_string`函数将指定位置的字符复制到另一个字符串中,并输出复制后的字符串。
阅读全文