题目:
利用指针编写程序
编写程序,将字符串中的第m个字符开始的全部字符复制成另一个字符串。
要求:
在主函数中输入字符串及m的值,并输出复制结果。在被调用函数中完成复制。
分析:
-
字符串输入和初始化:
- 用户输入一个整数
m
,表示从字符串a
的第m
个位置开始复制。 - 用户输入一个字符串
b
,作为要复制到a
中的字符串。 - 字符数组
a
被初始化为 "i am a student"。
- 用户输入一个整数
-
copy
函数实现:copy
函数接受三个参数,m
表示从字符串a
的第m
个位置开始,a
和b
分别表示要复制的目标字符串和源字符串。- 使用两个循环变量
i
和j
,分别遍历字符串a
和字符串b
。 - 从
m - 1
位置开始,将字符串b
中的字符逐个复制到字符串a
中。
-
输出结果:
- 输出复制后的字符串
a
,包括原有内容和新复制的内容。
- 输出复制后的字符串
代码:
#include<stdio.h>
int main()
{
void copy(int m, char* a, char* b);
char a[] = "i am a studant", b[30];
int m;
printf("输入m:");
scanf("%d", &m);
printf("输入字符串:");
scanf("%s", b);
copy(m, a, b);
printf("%s", a);
}
void copy(int m, char* a, char* b)
{
int i, j;
for (i = m - 1, j = 0; b[j] != 0; i++, j++)
{
a[i] = b[j];
}
a[i] = 0;
}