编写一个程序,将字符串中的第m个字符开始的全部字符复制到另一个字符串。

要求(1)在主函数中输入字符串及m的值,并输出复制结果;
(2)在被调函数void copystring(char *sourceStr, char *tagStr, int m)中完成复制。
输入/输出示例:
请输入一个字符串 :Hello world
请输入复制的起始位置 m =7
复制的结果是:world

代码如下:

#include<stdio.h>

#include<string.h>

int copy(char *p1,char *p2,int m);

int main()

{

char str1[40],str2[40];

printf("输入第一个字符串:\n");

gets(str1);

int m;

printf("输入第m个字符开始:\n");

scanf("%d",&m);

if(strlen(str1)<m)

printf("错误");

else

{

copy(str1,str2,m);

printf("%s",str2);

}

return 0;

}

int copy(char *p1,char *p2,int m)

{

int n;

n=0;

while(n<m-1)

{

n++;

p1++;

}

while(*p1!='\0')

{

*p2=*p1;

p1++;

p2++;

}

}

扩展资料

字符串一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。

两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-12-19

#include<stdio.h>
void copystring(char *sourceStr, char *tagStr, int m)
{for(sourceStr+=m;*tagStr++=*sourceStr++;);   
}
int main ()
{char s[100],s1[100];
 int m;
 printf("请输入一个字符串:");
 gets(s);
 printf("请输入复制的起始位置 m =");
 scanf("%d",&m);
 copystring(s,s1,m-1);
 printf("复制的结果是:%s\n",s1);
 return 0;
}

本回答被网友采纳
相似回答