Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串的尾部复制到C中的另一个数组中,没有引用,也没有指针_C_Arrays_String - Fatal编程技术网

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

将字符串的尾部复制到C中的另一个数组中,没有引用,也没有指针,c,arrays,string,C,Arrays,String,假设我有 char *one = "1234567890ab" 我想将第10个字符之后的所有内容复制到C中的另一个数组中。但我想复制它,我不希望有指针指向它,因此如果我修改包含ab的数组,原始数组将不会发生任何变化 如果我这样做: char help[10]; for(i=0; ((char help[i] = *(one + n + i)) != '\0'; ++i); char help将获取最后两个字符,但仍充当指针,因此如果 char help[1] = 'z'; 原始字符串变为

假设我有

char *one = "1234567890ab"
我想将第10个字符之后的所有内容复制到C中的另一个数组中。但我想复制它,我不希望有指针指向它,因此如果我修改包含ab的数组,原始数组将不会发生任何变化

如果我这样做:

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

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

char help[1] = 'z';
原始字符串变为

"1234567890az"
我怎样才能防止这种情况发生谢谢

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

strcpy确实是一种方法。此代码:

#include <stdio.h>
#include <string.h>

int main(void) {

    char *one = "1234567890ab";
    char two[10];

    strcpy(two, one + 10);
    two[1] = 'z';

    printf("one: %s\n", one);
    printf("two: %s\n", two);

    return 0;
}
请参阅此图。

当帮助被定义为字符数组时,strcpy无法在帮助之外“生成指向一个的指针”。它独立于原始字符串。代码中的其他地方有一个错误,但目前您没有显示足够的代码来说明它是什么。但是,以下代码:

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

不,这不起作用同时复制\0字符strcpy工作正常。只要strcpyhelp,1+10;。char-help将获取最后两个字符,但仍然充当指针,因此如果go-char-help[1]=z;原始字符串变为“1234567890az”。抱歉,我不相信你。问题中循环的一个固定的、可编译的版本,也如预期的那样工作:是的,还有其他问题,仍然找不到它是什么,但是谢谢
one = 1234567890ab
help = ab
one = 1234567890ab
help = az