zoukankan      html  css  js  c++  java
  • IP地址

    描述:给一串字符串,判断一个字符串石佛是一个合法的十进制表示的IPV4地址。最低的IP地址是0.0.0.0,最高的IP地址是255.255.255.255。

    输入:数据的第一行为一个整数T,表示T组数据;接下来有T组测试数据,每一行都是一个字符串(不含空白符)。字符串的长度保证不超过15,不小于1。

     1 #include <iostream>
     2 #include<cstdio>
     3 #include<string.h>
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     int T;
     9     scanf("%d",&T);
    10     while(T--){
    11         unsigned int num1,num2,num3,num4;
    12         char str[16];
    13         scanf("%s",str);
    14         if(sscanf(str,"%u.%u.%u.%u",&num1,&num2,&num3,&num4)==4){
    15             if(num1>=0 && num1<=255 && num2>=0 && num2<=255
    16                && num3>=0 && num3<=255 && num4>=0 && num4<=255){
    17                 char temp[16];
    18                 sprintf(temp,"%u.%u.%u.%u",num1,num2,num3,num4);
    19                 if(strcmp(temp,str)!=0)
    20                     puts("NO
    ");
    21                 else
    22                     puts("YES
    ");
    23                }
    24                else
    25                 puts("NO
    ");
    26         }
    27         else
    28             puts("NO
    ");
    29     }
    30     return 0;
    31 }

    1.printf函数与sprintf不同之处有:(18行)

    (1)函数的声明不同

    int printf(const char *format [, argument]...);
    int sprintf(char *buffer, const char *format [, argument] ...);

    sprintf比printf多一个参数buffer,这个参数的作用:

    函数printf(...)根据指定的格式(format)将参数(argument)输出到屏幕上;

    函数sprintf(...)根据指定的格式(format)将参数(argument)输出到由指针buffer指定的字符数组(字符缓冲区)中

    2.scanf函数与sscanf不同之处有:(14行)

    int sscanf( string str, string fmt, mixed var1, mixed var2 ... );
    int scanf( const char *format [,argument]... );

    sscanf()按照指定格式format将字符串str进行处理,输入到参数var1,var2....中

    成功则返回参数数目,失败则返回-1

    例如:
    sscanf("1 2 3","%d %d %d",buf1, buf2, buf3); 成功调用返回值为3,即buf1,buf2,buf3均成功转换。
    sscanf("1 2","%d %d %d",buf1, buf2, buf3); 成功调用返回值为2,即只有buf1,buf2成功转换。
  • 相关阅读:
    2. Add Two Numbers
    1. Two Sum
    22. Generate Parentheses (backTracking)
    21. Merge Two Sorted Lists
    20. Valid Parentheses (Stack)
    19. Remove Nth Node From End of List
    18. 4Sum (通用算法 nSum)
    17. Letter Combinations of a Phone Number (backtracking)
    LeetCode SQL: Combine Two Tables
    LeetCode SQL:Employees Earning More Than Their Managers
  • 原文地址:https://www.cnblogs.com/xym4869/p/8644441.html
Copyright © 2011-2022 走看看