c - 使用字符指针复制字符串

标签 c arrays pointers

考虑以下代码,它可以像往常一样复制字符串

#include<stdio.h>

void strcp(char *s1, char *s2);

int main() {

    char s1[]="Hai, I am a good boy";                   //1
    char s2[]="Really I am a good boy";                 //2

    strcp(s1,s2);

    printf("%s",s1);
    return 0;
}

void strcp(char *s1, char *s2) {

    while(*s1++=*s2++);
}

如果我想将 s1, s2 声明为 main() 内的 char 指针,我必须进行哪些更改?

char *s1="Hai, I am a good boy";                   //1
char *s2="Really I am a good boy";                 //2

我尝试复制指针值,如下所示

void strcp(char *s1, char *s2) {

s1=s2;
}

但是没有成功。

最佳答案

void strcp(char **s1, char **s2) {

*s1=*s2;
}

但它不复制任何内容。之后main中的s1和s2将指向相同的内存位置。

关于c - 使用字符指针复制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44408844/

相关文章:

c - strstr 的微妙之处?

arrays - 查找 2 个排序数组的并集(有重复项)

c++ - C++内存管理相关查询

c++ - 如何防止返回指向临时变量的指针?

无法整理多重定义

计算包含字符的单词

c# - 获取数组中最接近的值

go - 为了将 io.Reader 的内容作为字符串指针返回,我可以复制数据的最小次数是多少?

c - 三维数组初始化

Ruby:4 字节数组到 int32