编织一个程序,将字符串的第m个字符开始的全部字符复制成另一个字符串

要求在主函数中输入串及m的值并输出复制结果,在被调用的函数中完成复制

代码如下:
#include <stdio.h>
#include <string.h>

void Replace(char *original, char *r, int start)
{
if (original == NULL || r == NULL || start < 0) return;

int i = 0;
while (original[i + start] != '\0' && r[i] != '\0')
{
original[start + i] = r[i];
i++;
}

original[start + i] = '\0';

}

int main()
{
char str[1024] = {0}; // 待复制的字符串
char replace[1024] = {0}; // 要替换成什么
int m = 0; // 第几个字符

printf("请输入源字符串:");
scanf("%s", str);
printf("请输入要替换成什么字符串:");
scanf("%s", replace);
printf("请输入从第几位开始替换:");
scanf("%d", &m);
printf("开始替换......\n");
Replace(str, replace, m);
printf("替换完成,结果为:%s\n", str);

return 0;
}

======================
希望符合你的要求
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-08
void FnNCopy(const char*ch,int m,char ch2)
{
int n=m-1;
for(int i=0;ch[n];i++,n++)
ch2[i]=ch[n];
ch2[i]='\0';
}
直接在main函数中调用就行了,C++和C都能编译.ch为要复制的字符串,m为要复制的第几个字符,注意是第几个字符,不是下标如果是按下标的话,把int n=m-1;改为n=m;
ch2为被复制到的目标字符串.注意ch2一定要足够大.
第2个回答  2012-01-08
#include <stdio.h>
#include <string.h>
char * my_copy( char *str , int m )
{
if ( m > strlen(str) ) return NULL ;
return str+m-1 ;
}
int main()
{
int m=0;
char str[81],*p=NULL;
printf("input a string:" );
gets( str );
printf("input position numner:" );
scanf("%d",&m );
p=my_copy( str , m );
printf("the result :\n");
printf("%s\n" , p );
return 0;
}
第3个回答  2012-01-10
#include<stdio.h>
#include<string.h>
void str_copy(char *A,char *B,int m)
{
B+=m-1;
strcpy(A,B);
}

int main()
{
char B[]="abcdefg",A[10];
int m=3;
str_copy(A,B,m);

puts(A);

return 0;
}
第4个回答  2012-01-08
用什么 语言??
相似回答