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