我该如何解释:sprintf(var_ptr_char+strlen(var_ptr_char)... C 代码
How can i interpret this : sprintf(var_ptr_char+strlen(var_ptr_char).... C code
我怎么解释这个:var_ptr_char+strlen(var_ptr_char)
在下面的 C 代码中:
#define INT_CONSTANT 80
char var_ptr_char[1024];
strcat(var_ptr_char,"SOMETHING");
sprintf(var_ptr_char+strlen(var_ptr_char),":%d",INT_CONSTANT);
为了用 snprintf 改变 sprintf,我要放多少尺寸。
谢谢!
sprintf
的第一个参数是一个 char
指针(即 char
缓冲区。)该函数将 "print" 在该缓冲区并从该位置开始指针指向的。
对一个指针加上N,表示指向第N个位置。因此,如果我们将 strlen(var_ptr_char)
添加到 var_ptr_char
,我们实际上是将指针传递给缓冲区的最后一个字符(假设它已经包含一个有效的字符串)。
snprintf
调用可能是这样的:
snprintf(var_ptr_char + strlen(var_ptr_char), 1024 - strlen(var_ptr_char) - 1, ":%d", INT_CONSTANT);
TL;DR: 它将字符串附加到 var_ptr_char
.
中已存储字符串的末尾
我怎么解释这个:var_ptr_char+strlen(var_ptr_char) 在下面的 C 代码中:
#define INT_CONSTANT 80
char var_ptr_char[1024];
strcat(var_ptr_char,"SOMETHING");
sprintf(var_ptr_char+strlen(var_ptr_char),":%d",INT_CONSTANT);
为了用 snprintf 改变 sprintf,我要放多少尺寸。
谢谢!
sprintf
的第一个参数是一个 char
指针(即 char
缓冲区。)该函数将 "print" 在该缓冲区并从该位置开始指针指向的。
对一个指针加上N,表示指向第N个位置。因此,如果我们将 strlen(var_ptr_char)
添加到 var_ptr_char
,我们实际上是将指针传递给缓冲区的最后一个字符(假设它已经包含一个有效的字符串)。
snprintf
调用可能是这样的:
snprintf(var_ptr_char + strlen(var_ptr_char), 1024 - strlen(var_ptr_char) - 1, ":%d", INT_CONSTANT);
TL;DR: 它将字符串附加到 var_ptr_char
.