C语言中如何用指针复制字符串

Python07

C语言中如何用指针复制字符串,第1张

#include <stdio.h>

#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