2)编写函数,将长度为n的字符串从第m个字符开始的全部字符复制成另一个字符串。用C语言编写
时间: 2024-11-22 08:42:14 浏览: 3
在C语言中,可以创建一个函数来完成这个任务,该函数接收两个参数:原始字符串、起始位置以及目标字符串指针。这里是一个简单的实现:
```c
#include <stdio.h>
#include <string.h>
// 函数原型声明
void copy_chars(char* original_str, int m, char* target_str);
// 函数实现
void copy_chars(char* original_str, int m, char* target_str) {
// 验证输入的有效性
if (original_str == NULL || target_str == NULL) {
printf("Invalid input! Strings cannot be NULL.\n");
return;
}
// 检查起始位置是否合法
if (m < 1 || m > strlen(original_str)) {
printf("Invalid start position! It should be between 1 and the length of the string.\n");
return;
}
// 拷贝指定位置后的字符到目标字符串
strncpy(target_str, original_str + m - 1, strlen(original_str) - m + 1); // 注意减1是因为索引是从0开始的
target_str[strlen(original_str) - m] = '\0'; // 确保目标字符串结束符正确
// 显示结果
printf("Copied characters from position %d to: %s\n", m, target_str);
}
// 测试函数
int main() {
char str1[] = "Hello, World!";
char str2[100];
int m = 7;
copy_chars(str1, m, str2);
return 0;
}
```
阅读全文