sscanf 和 sprintf 的妙用

发布时间:2023-07-27 11:47:55
贴主:易向晚来适
热度:7
正在讨论:P1756 - 合法的IP地址 题目传送门

易向晚来适 2023-07-27

不得不说太妙了,先正常读入字符串,然后使用 sscanf"%d.%d.%d.%d" 的格式去读

如果 sscanf 的返回值不为 4,直接 return

否则使用 sprintf,同样以 "%d.%d.%d.%d" 的格式输出到一个字符数组,与输入的比较一下

如果 strcmp 的返回值不为 0,说明有前导零或者其他东西

最后依次判断读入的输入是否为 0~255 之间的整数,妙极了

(1)

1 2023-07-27

回复 @易向晚来适 :妙!

(1)

1 2023-07-27

回复 @易向晚来适 :插一句,strcmp函数接受的参数类型是C风格字符串(即以NULL结尾的字符数组),所以在C++标准库中的string类的成员函数c_str()函数将返回一个const char*类型的指针,指向string对象内部储存的字符数组,即其内部的C风格的字符数组。所以在使用strcmp函数的时候建议和c_str搭配使用哦!

(0)

易向晚来适 2023-07-31

回复 @避雨听山风 :多此一举了,string 本身就可以比大小 😁

c_str() 函数多用在 printf 输出 string 的时候

(0)

易向晚来适 2023-07-27

附代码

20230727114839_46e89e.png

(0)

Copyright 2016 - 2024 XUJC ACM Team
闽ICP备2020022076号-1