C语言,有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。 输入数字n和一行字符串和数字m ,输出从m开始的子串
时间: 2023-12-18 16:24:03 浏览: 107
好的,下面是一份C语言代码,可以实现您的需求:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* copy_substring(int n, char* string, int m) {
char* substring = (char*) malloc((n - m + 2) * sizeof(char)); // 分配存储子串的空间
int i;
for (i = m - 1; i < n; i++) {
substring[i - m + 1] = string[i]; // 复制字符到子串中
}
substring[i - m + 1] = '\0'; // 添加字符串结尾标志
return substring;
}
int main() {
int n, m;
char string[100];
printf("请输入字符串长度n:\n");
scanf("%d", &n);
printf("请输入字符串:\n");
scanf("%s", string);
printf("请输入子串起始位置m:\n");
scanf("%d", &m);
char* substring = copy_substring(n, string, m);
printf("从第%d个字符开始的子串为:%s\n", m, substring);
free(substring); // 释放存储子串的空间
return 0;
}
```
这个程序定义了一个名为copy_substring的函数,它接收三个参数:字符串的长度n,字符串string以及子串的起始位置m。它将从第m个字符开始的全部字符复制为另一个字符串,并将其作为结果返回。请注意,这里的第一个字符的索引是1而不是0,因为C语言中的字符串索引从0开始。
接下来,程序在主函数中获取用户输入并调用copy_substring函数,最后输出结果。
例如,如果您输入n为6,字符串为"abcdef",m为3,则程序将输出"从第3个字符开始的子串为:cdef"。
希望这个程序能够满足您的需求!
阅读全文