如何使用scanf函数获取字符串长度 [英] How to get string length using scanf function

查看:23
本文介绍了如何使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆