C语言 有一个字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。完成后将代码或截图上传
时间: 2024-11-22 10:26:33 浏览: 4
在C语言中,你可以使用标准库提供的`strcpy()`函数或者手动编写循环来实现这个功能。这里提供一种手动遍历并复制的方式:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
char* copy_sub_string(char str[], int n, int m, char dest []);
// 主函数,示例如何调用
int main() {
char original[] = "Hello, World!";
int n = strlen(original);
int m = 7; // 开始位置,注意索引从0开始
char result[strlen(original) - m + 1]; // 新字符串足够存放剩余部分
strcpy(result, copy_sub_string(original, n, m, result)); // 调用函数并复制
printf("Original string: %s\n", original);
printf("Copied substring: %s\n", result);
return 0;
}
// 实现copy_sub_string函数
char* copy_sub_string(char str[], int n, int m, char dest[]) {
if (m >= n || dest == NULL) { // 检查输入是否有效
return NULL;
}
int len_to_copy = n - m; // 计算需要复制的字符数
strncpy(dest, &str[m], len_to_copy); // 使用strncpy防止溢出,同时保留'\0'
dest[len_to_copy] = '\0'; // 确保新字符串结束符正确
return dest;
}
```
在这个例子中,`copy_sub_string`函数接收原始字符串、总长度、起始位置以及目标字符串作为参数,然后通过`strncpy`复制指定范围内的字符到新的字符串中。
阅读全文