不得不说太妙了,先正常读入字符串,然后使用 sscanf 以 "%d.%d.%d.%d" 的格式去读
如果 sscanf 的返回值不为 4,直接 return
否则使用 sprintf,同样以 "%d.%d.%d.%d" 的格式输出到一个字符数组,与输入的比较一下
如果 strcmp 的返回值不为 0,说明有前导零或者其他东西
最后依次判断读入的输入是否为 0~255 之间的整数,妙极了
回复 @易向晚来适 :插一句,strcmp函数接受的参数类型是C风格字符串(即以NULL结尾的字符数组),所以在C++标准库中的string类的成员函数c_str()函数将返回一个const char*类型的指针,指向string对象内部储存的字符数组,即其内部的C风格的字符数组。所以在使用strcmp函数的时候建议和c_str搭配使用哦!