什么将空字符串复制到另一个字符串?

问题描述 投票:-1回答:2

我刚开始学C语言编程。当来到字符串,我感到困惑与功能“的strcpy”。我试图切换的第一个参数,第二个参数的地方。当我运行程序时,它只是显示了一个“S”。这意味着什么?

char s2[ ]= "Hello";
char s1[10];
strcpy(s2, s1);
printf("Source string = %s\n", s2);
printf("Target string = %s\n", s1);

我想输出将是空的。但它只是显示了一个“S”。

c strcpy
2个回答
2
投票

基于该printf语句,你有论据strcpy混合起来。

因为它是现在,你复制s1s2。阵列s1是未初始化然而,使其中包含的值是不确定的。

要复制s2s1,切换参数:

strcpy(s1, s2);

如果你离开它是,你需要明确设置s1为空字符串,以获得一致的结果。

char s1[10] = "";

0
投票

在C中,字符串是零终止。这意味着,一个空字符串是包含单一“零终止”字符的字符串。

当一个空字符串被复制,所述单“零终止子”炭被复制。目标字符串仍然有一个地址(以下简称“指针串字符”将指向零终止)和字符串指针不会为NULL。

© www.soinside.com 2019 - 2024. All rights reserved.