编写一个程序,将字符串中自第m个字符开始的全部字符复制成另一个字符串。要 求在主函数中输入字符串及m的值并输出复制结果,在被调用函数中完成复制。用指针实现
时间: 2024-03-10 07:46:23 浏览: 36
将字符串中从第m个字符开始的全部字符复制成为另一个字符串并打印
好的,我理解了你的要求。下面是对应的 C 语言程序,使用了指针来实现字符串复制:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void copy_string(char *str, int m, char *copy) {
// 指针 p 指向原始字符串的第 m 个字符
char *p = str + m - 1;
// 将 p 指向的字符及其后面的所有字符复制到新的字符串中
while (*p != '\0') {
*copy++ = *p++;
}
// 在新的字符串末尾添加结束符
*copy = '\0';
}
int main() {
char str[100], copy[100];
int m;
printf("请输入一个字符串:");
gets(str);
printf("请输入起始位置 m:");
scanf("%d", &m);
// 调用函数进行字符串复制
copy_string(str, m, copy);
printf("复制结果为:%s\n", copy);
return 0;
}
```
程序中的 `copy_string` 函数接受三个参数:原始字符串的指针 `str`,起始位置 `m` 和新的字符串的指针 `copy`。它使用一个指针 `p` 来指向原始字符串中的第 `m` 个字符,然后通过一个循环将 `p` 指向的字符及其后面的所有字符复制到新的字符串中,最后在新的字符串末尾添加一个结束符。
在 `main` 函数中,我们先输入一个字符串和起始位置 `m`,然后调用 `copy_string` 函数进行字符串复制,最后输出复制结果。注意,我们使用了 `gets` 函数来读取输入的字符串,因为它可以读取包括空格在内的整行输入。
阅读全文