第一种方法:
#include<stdio.h>
#include<string.h>
#define M 100
int main()
{
void str(char *p1,char *p2,int m); //函数说明
char q1[M],q2[M]; //把输入在q1的数组复制到q2数组中去;
int m,i;
printf("请输入一串字符串:");
scanf("%s",&q1);
i=strlen(q1); //计算字符串的长度
printf("\n字符串长度为:%d\n",i);
printf("\n请输入从第几个字符开始复制:");
scanf("%d",&m);
str(q1,q2,m);
}
void str(char *p1,char *p2,int m)
{
int i;
for(i=m;*(p1+i-1)!='\0';i++)
*(p2+i-m)=*(p1+i-1); //第二种表达 p2[i-m]=p1[i-1];
printf("\n原来q1字符串为:%s\n",p1);
printf("\n从第%d个开始复制到p2的字符串为:%s",m,p2);
}
第二种方法:
#include<stdio.h>
#include<string.h>
#include<conio.h>
#define M 100
int main()
{
char *p1,*p2;
char q1[M],q2[M]; //q1复制到q2中
int m;
p1=q1; /* p1=&q1[0],p2=&q2[0]*/
p2=q2; //这时候指针相当于一个数组
printf("请输入一串字符串:");
gets(q1);
printf("\n字符串长度为:%d\n",strlen(q1)); //计算字符串长度
printf("\n请输入你想从第几个字符开始复制:");
scanf("%d",&m);
for( int i=m;*(p1+i-1)!='\0';i++)
{
p2[i-m]=p1[i-1];
}
printf("\n原来q1字符串为:%s\n",p1);
printf("\n从第%d个开始复制到p2的字符串为:%s",m,p2);
}