C语言有一个字符串,包含n个字符。写一个函数,将此字符串中从第m个字符开始的全部字符复制成为另外一个字符串。
时间: 2023-12-18 13:28:54 浏览: 330
以下是两种C语言实现从第m个字符开始复制字符串的方法:
方法一:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *a, *b;
int n, m, t, i;
scanf("%d", &n);
a = (char*)malloc(n * sizeof(char));
b = (char*)malloc(n * sizeof(char));
scanf("%s", a);
scanf("%d", &m);
t = n - m + 1;
for (i = 0; i < t; i++) {
b[i] = a[m - 1];
m++;
}
printf("%s", b);
free(a);
free(b);
return 0;
}
```
方法二:
```c
#include <stdio.h>
#include <string.h>
void copystr(char* p1, char* p2, int m) {
int n = 0;
while (n < m - 1) {
n++;
p1++;
}
while (*p1 != '\0') {
*p2 = *p1;
p1++;
p2++;
}
*p2 = '\0';
}
int main() {
int m;
char str1[20], str2[20];
printf("请输入一个字符串:");
gets(str1);
printf("从第几个字符开始复制?");
scanf("%d", &m);
if (strlen(str1) < m)
printf("输入错误!");
else {
copystr(str1, str2, m);
printf("新的字符串为:%s", str2);
}
return 0;
}
```
阅读全文