一个程序,将字符数组str2中的全部字符复制到字符数组str1中。不使用strcpy。

如题所述

#include<stdio.h>
void copy(char *dst,char *src) {//定义复制方法
while (*dst++ = *src++);//复制字符串
}
int main() {
char a[] = "abcdef";//待复制的字符串
char b[10];//复制到的字符串
copy(b, a);//执行复制操作
printf("%s", b);//输出复制结果
char c;
scanf("%c", &c);//这句是为了防止控制台退出
return 0;
}

解决方法

1、定义一个带两个参数的复制函数;

2、在函数内循环读取待复制字符串的一个字符,并放入到复制到字符串里;

3、判断当前放入的字符是否是\0如果是就结束循环;

4、 将待复制字符串指针加1,将复制到的字符串指针加1

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-09
#include<iostream>
#include<string.h>
int main()
{
char str1[20]="i am a boy",str2[20];
int i,j;
cout<<"string1 is:"<<str1<<endl;
for(i=0,j=0;i<20;i++,j++)/*逐一赋值*/
str2[j]=str1[i];
cout<<"string2 is:"<<str2<<endl;
return 0;
}
第2个回答  2012-05-09
那就用循环一个一个赋值给其他数组
如a[i]=b[j]
第3个回答  2012-05-09
for(int i=0;i<strlen(str2);i++)
{
str1[i]=str2[i];
}
str1[i]='\0';
第4个回答  2012-05-09
#include"stdio.h"
#include"math.h"

void mycpy(char str1[],char str2[])
{
int i;
for(i=0;str2[i];i++)
str1[i]=str2[i];
str1[i]=0;
}
int main()
{
char str2[100]="abcde";
char str1[100]="tttt";
mycpy(str1,str2);
puts(str1);
return 0;
}本回答被网友采纳
相似回答