c 语言题目描述 用指针实现:有一字符串,包含n(n≥0)个字符。写一函数,将此字符串中从第m(1≤m≤n)个字符开始的全部字符复制成为另一个字符串。 输入 先输入1个字符串(长度不超过80),假设其长度为n。 再输入要截取的起点m(1≤m≤n)。 输出 将此字符串中从第m个字符开始的全部字符复制成为另一个字符串,并输出。 样例输入 C programming. 3 样例输出 programming.
时间: 2024-02-22 17:56:44 浏览: 89
以下是用指针实现的 C 语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void copy_string(char *str, int m)
{
int n = strlen(str);
if (m < 1 || m > n) {
printf("Invalid input\n");
return;
}
char *new_str = (char *) malloc((n - m + 2) * sizeof(char));
strcpy(new_str, str + m - 1);
printf("%s\n", new_str);
free(new_str);
}
int main()
{
char str[81];
int m;
scanf("%s %d", str, &m);
copy_string(str, m);
return 0;
}
```
输入一个字符串和起点 m,调用 `copy_string` 函数将从第 m 个字符开始的全部字符复制成为另一个字符串,并输出。如果输入的起点不在有效范围内,则输出 "Invalid input"。使用 `malloc` 动态分配内存,使用 `strcpy` 函数复制字符串,最后记得使用 `free` 释放内存。
阅读全文