关于c语言中sscanf的用法不懂,求指教

#include <stdio.h>#include <stdio.h>int main(void){ char put_in[102], put_out[102], temp[102]; while(1) { scanf("%s", put_in); scanf(put_in, "%[0-255].%[0-255].%[0-255].%[0-255]", temp); if(strcmp(temp, put_in) == 0) printf("YES尀n"); else printf("NO尀n"); printf("%s尀n%s尀n", put_in, temp); } return 0;}原题是判断输入的是否为IP地址格式。打错了,应该是第二个scanf为sscanf
2026年09月28日 02:47
有1个网友回答
网友(1):

#include
#include
#include
#include
int main(void)
{
char put_in[102], put_out[102], temp[102];
char temp1[3],temp2[3],temp3[3],temp4[3];

while(1)
{
scanf("%s", put_in);
getchar();
sscanf(put_in, "%[^.].%[^.].%[^.].%[^.]", temp1,temp2,temp3,temp4);
if( (atoi(temp1)<=255&&atoi(temp1)>=0)&&(atoi(temp2)<=255&&atoi(temp2)>=0)&&
(atoi(temp3)<=255&&atoi(temp3)>=0)&&(atoi(temp4)<=255&&atoi(temp4)>=0) )
{
printf("YES\n");
}
else printf("NO\n");

printf("put_in = %s %s.%s.%s.%s\n", put_in, temp1,temp2,temp3,temp4);
}

return 0;
}