#include <string.h>
int copystring(char *str2, char *str1)
int main()
{
char str1[30] = "hello,string copied!\n"
char str2[30]
printf("str2[30]=%d\n", copystring(str1, str2))// 你的copystring函数需要的参数是两个字符型指针,而数组名本身就可以作指针来使用,&str1[30]指的是字符数组str1中第31(从0开始,这里实际上越界了)个元素的地址
return 0
}
int copystring(char *str2, char *str1)
{
printf("str2 is %s\n", str2)
strcpy(str1, str2)// strcpy函数第一个参数是复制后存放的数组,第二个才是要复制的对象
return *str2// 我不太理解你这个函数想返回什么,你现在做的是将str2[0]的值以整型返回(h的ASCII码对应104)
}
如果还有什么问题可以追问
#include<iostream>#include<string>
using namespace std
int main()
{
char s[]="asdfghjk",b[20]
strcpy(b,a)//直接使用字符串拷贝就可以了
cout<<b
return 0
}
如果是char *b = a的话只是把a和b所指向的内存一样,如果修改了a的值则b的值也会同时进行修改。如果是 for(int i=0i<20i++) *(b+i)=*(s+i)或strcpy(b,a)则修改a的值不影响b