有一字符串,包含n个字符。写一函数,将此字符串中第m个字符开始的全部字符复制成另一个字符串。
例如:
输入 :
请输入原始字符串:reading
请输入替换字符串:room
请输入从第几位开始替换:5输出:
readroom
要注意替换后原始字符串多出来的部分要补在后面
代码如下:(无函数)
#include<stdio.h>
#include<string.h>
int main()
{
char a[20],b[20],c[40];
int m,i,j,l,k,f;
printf("请输入原始字符串:");
gets(a);
printf("请输入替换字符串:");
gets(b);
printf("请输入从第几位开始替换:");
scanf("%d",&m);
k=strlen(a);
for(i=0;i<m-1;i++)
{
c[i]=a[i];
}
l=m-1;
j=0;
while(b[j]!='\0')
{
c[l]=b[j];
j++;
l++;
}
if(k>l) //处理原始字符串多出来的部分
{
for(;a[l]!='\0';l++)
{
c[l]=a[l];
}
}
c[l]='\0';
puts(c);
return 0;
}(有函数):
#include<stdio.h>
#include<string.h>
void th(char a[],char b[],int m);
int main()
{
char a[20],b[20];
int m;
printf("请输入原始字符串:");
gets(a);
printf("请输入替换字符串:");
gets(b);
printf("请输入从第几位开始替换:");
scanf("%d",&m);
th(a,b,m);
return 0;
}
void th(char a[],char b[],int m)
{
int k,i,j;
char c[40];
k=strlen(a);
for(i=0;i<m-1;i++)
{
c[i]=a[i];
}
j=0;
while(b[j]!='\0')
{
c[i]=b[j];
j++;
i++;
}
if(k>i) //处理原始字符串多出来的部分
{
while(a[i]!='\0')
{
c[i]=a[i];
i++;
}
}
c[i]='\0';
puts(c);
}版权声明:本文为zhangruotong原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。