gpt4 book ai didi

在C中将字符串的尾部复制到另一个数组中,无引用无指针

转载 作者:行者123 更新时间:2023-11-30 20:48:49 25 4
gpt4 key购买 nike

假设我有

char *one = "1234567890ab"

我想将第10个字符之后的所有内容复制到C中的另一个数组中。但是我想复制它,我不想要指向它的指针,所以如果我修改保存“ab”的数组,原来的没有任何变化。

如果我做类似的事情:

char help[10];
for(i=0; ((char help[i] = *(one + n + i)) != '\0'; ++i);

char help 将获取最后两个字符,但仍充当指针,因此 if go

char help[1] = 'z';

原来的字符串变成

"1234567890az"

如何防止这种情况发生,谢谢

编辑:我尝试了 strcpy 但它不起作用,仍然产生了一个指针。

最佳答案

help 定义为时,

strcpy 无法从 help 中“生成 [指向 one] 的指针” char 数组。它独立于原始字符串。您的代码中其他地方有错误,但目前您没有显示足够的代码来判断它是什么。但是,以下代码:

char *one = "1234567890ab";
char help[10];
(void) strcpy(help, one + 10);
(void) printf("one = %s\nhelp = %s\n", one, help);
help[1] = 'z';
(void) printf("one = %s\nhelp = %s\n", one, help);

产生输出:

one = 1234567890ab
help = ab
one = 1234567890ab
help = az

关于在C中将字符串的尾部复制到另一个数组中,无引用无指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28464164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com