我刚刚开始学习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”。
答案 0 :(得分:2)
基于printf
语句,您混合了strcpy
的参数。
现在,您正在将s1
复制到s2
。数组s1
尚未初始化,因此它包含的值不确定。
要将s2
复制到s1
,请切换参数:
strcpy(s1, s2);
如果保持原样,则需要将s1
显式设置为空字符串以获得一致的结果。
char s1[10] = "";
答案 1 :(得分:0)
在C中,字符串以零结尾。这意味着空字符串是包含单个“零终止符”字符的字符串。
复制空字符串时,将复制单个“零终止符”字符。目标字符串仍然有一个地址(“字符串chars的指针”将指向零终止符),并且该字符串的指针将不为NULL。