如何使用scanf函数获取字符串长度 [英] How to get string length using scanf function
本文介绍了如何使用scanf函数获取字符串长度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在不使用strlen
函数或计数器的情况下获取字符串长度,如:
scanf("???",&len);
printf("%d",len);
输入:abcde
预期产量:5
推荐答案
可以使用赋值抑制(字符*
)和%n
,将消耗的字符数存储到一个整数值中:
int count;
scanf( "%*s%n", &count );
printf( "string length: %d
", count );
说明:
%*s
将解析字符串(直到第一个空格字符),但不会存储它,因为*
。
然后%n
会将消耗的字符数(即解析的字符串长度)存储到count
中。
请注意,scanf()
的返回值不一定计入%n
:
C标准规定:执行%n指令不会增加执行完成时返回的赋值计数,但更正似乎与此相矛盾。可能明智的做法是不要假设%n转换对返回值的影响。
引用自the man page,在那里您还可以找到有关scanf()
的其他所有信息。
这篇关于如何使用scanf函数获取字符串长度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文