请问为什么在以下代码片段中需要使用strcpy()函数将字符串赋值给字符数组?
int main(void) {
char s[4];
s = "abc"; //Fails
strcpy(s, "abc"); //Succeeds
return 0;
}
s = "abc"
为什么会失败?并且为什么在声明后只有strcpy()才能用于将字符串赋值给char数组?对我来说,这似乎很奇怪,因为你必须使用一个函数来执行基本的赋值操作。
{ val0,val1,... }
的适当初始化器进行初始化。 - Jens Gustedtfor (char *dst = s, *src = "abc"; *dst++ = *src++;) ;
。然而,库函数是更好的选择,因为它更易于阅读,并且可能针对系统进行了优化。 - M.Mstrcpy()
与memcpy()
几乎完全相同,只是它包括空字节。 - RastaJedi