如何判断用户输入的字符串是否是IP地址

本文介绍了一种使用C语言判断用户输入的字符串是否为合法IP地址的方法,包括使用gets()、sscanf()和sprintf()函数进行字符串读取、解析和格式化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                                                                            如何判断用户输入的字符串是否是IP地址

       思路:输入字符串的时候,把分隔符“.”读取出来,然后判断分隔符旁边的数字是否在0~~255之间,然后判断是否合法。

    #include <stdio.h>   
    #include <string.h>   
    int main(void)   
    {  
       char str[31],temp[31];  
       int a,b,c,d;  
       while(gets(str)!=NULL)  
       {  
         if(sscanf(str, "%d.%d.%d.%d ",&a,&b,&c,&d)==4 &&   a>=0   &&   a<=255 &&   b>=0   &&   b<=255 &&   c>=0   &&   c<=255   &&     d>=0   &&   d<=255)  
        {  
            sprintf(temp, "%d.%d.%d.%d",a,b,c,d);    //把格式化的数据写入字符串temp   
            if(strcmp(temp,str)==0)   
            {  
                printf("YES\n");   
            }   
            else  
            {  
                printf("NO\n");   
            }  
        }  
        else   
        {  
            printf("NO\n");  
        }  
       }  
       return 0;   
    }  

          这道题我做的很简单,主要是掌握一些C语言编程技巧,那我就程序中出现的几个c语言技巧说一下。

          函数gets():从stdin流中读取字符串,直至接受到换行符或EOF时为止,并将读取的结果存放在buffer指针所指向的字符数组中。

换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串。

          sscanf():从一个字符串中读进与指定格式相符的数据。

          sprintf():格式化输出函数,送格式化输出到指定的字符串中。

         


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值