我将如何找到sscanf()
我从字符串扫描到某个字符而不实际存储它的位置的长度?
sscanf(stringToBeTested, "%[upUntilThis]", StoreToThisString)
strlen(sscanf(stringToBeTested, "%[upUntilThis]", StoreToThisString))
您可以使用 取消转换规范中的分配*
,如下所示:
int index_at_end = -1;
sscanf(stringToBeTested, "%*[^upUntilThis]%n", &index_at_end);
%n
告诉您在处理过程中到该点扫描的字节数。请注意,该%n
操作不计算在内,因此sscanf()
将返回 0 次成功转换。这可能会让生活变得太棘手。
听起来您正在寻找strchr(3)
:
int length = strchr(stringToBeTested, upUntilThis) - stringToBeTested;