Mnk*_*isd 3 c arrays string pointers char
char array[12];
sprintf(array, "%s %s", "Hello", "World");
printf(array); // prints "Hello World"
Run Code Online (Sandbox Code Playgroud)
有没有办法不使用sprintfor来做到这一点strcpy?
您不能直接将字符串分配给数组,但可以从字符串文字初始化数组:
char array[] = "Hello World"; // this defines array with a size of 12 bytes
Run Code Online (Sandbox Code Playgroud)
如果您稍后想要将不同的字符串存储到array,则必须使用字符串复制函数,例如:
strcpy(array, "Hello Buddy"); // assuming array has at least 12 bytes
memcpy(array, "Hello Buddy", 12); // assuming array has at least 12 bytes
snprintf(array, sizeof array, "%s %s", "Hello", "Buddy");
Run Code Online (Sandbox Code Playgroud)
或者您可以一次分配一个字符:
array[6] = 'B';
array[7] = 'u';
array[8] = 'd';
array[9] = 'd';
array[10] = 'y';
array[11] = '\0';
Run Code Online (Sandbox Code Playgroud)
请注意,最好使用snprintf而不是sprintf避免潜在的缓冲区溢出。还要避免将变量数组传递给printf,如果它包含字符,这将导致未定义的行为%。始终使用常量格式字符串:
printf("%s\n", array);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1350 次 |
| 最近记录: |