有一个字符串,包含 n 个字符,写一函数,将此字符串 从第 3 个字符开始的全部字符复制为另一个字符串 用C语言写程序
时间: 2024-11-22 10:23:44 浏览: 3
在C语言中,可以编写一个名为`copy_substring`的函数来实现这个需求。该函数接受两个参数:原始字符串`str`和它的长度`n`,然后返回一个新的字符串,只包含从第三个字符开始到结束的所有字符。以下是完整的代码示例:
```c
#include <stdio.h>
#include <stdlib.h> // 包含malloc函数
char* copy_substring(char* str, int n) {
if (n <= 2) {
printf("原始字符串长度不足,无法获取子串。\n");
return NULL; // 如果字符串太短则返回NULL
}
char* new_str = (char*) malloc((n - 2) * sizeof(char)); // 新字符串的大小为原字符串长度减去2
if (new_str == NULL) {
printf("内存分配失败。\n");
return NULL;
}
// 把从第3个字符开始的全部字符复制到新字符串
for (int i = 2; i < n; i++) {
new_str[i - 2] = str[i]; // 由于新字符串需要从位置2开始,所以索引减2
}
new_str[n - 2] = '\0'; // 结束符'\0'
return new_str;
}
int main() {
char str[] = "Hello, World!";
int n = strlen(str); // 获取字符串长度
char* sub_str = copy_substring(str, n);
if (sub_str != NULL) {
printf("复制后的子串是: %s\n", sub_str);
free(sub_str); // 释放动态分配的内存
} else {
printf("无法获取子串。\n");
}
return 0;
}
```
阅读全文