zoukankan      html  css  js  c++  java
  • strtol函数

    今天做啦一个进制转换的题,改来改去最终倒是过啦,本来挺开心的,然后去翻啦一下题解,瞬间就有小情绪啦,哎,人家的代码辣么辣么短,实在是不开心,不过谁让咱是小渣渣呢,在此总结一下strtol 函数。

    先来看看把我整不开心的这道题

    Hrbust1896 http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1896

     题目简单,只要足够细心就能AC的

    看我自己的代码

     1 #include<stdio.h>
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<string.h>
     5 #include<stack>
     6 #include<math.h>
     7 using namespace std;
     8 int main()
     9 {
    10 
    11 
    12     int n,m;
    13     char s[20];
    14     while(~scanf("%d%s",&n,&s)){
    15             int t=0;int ss[50];
    16         int len=strlen(s);
    17         for(int i=0;i<len;i++){
    18              if(s[i]=='a'||s[i]=='A')ss[t++]=10;
    19             else if(s[i]=='b'||s[i]=='B')ss[t++]=11;
    20             else if(s[i]=='c'||s[i]=='C')ss[t++]=12;
    21             else if(s[i]=='d'||s[i]=='D')ss[t++]=13;
    22             else if(s[i]=='e'||s[i]=='E')ss[t++]=14;
    23             else if(s[i]=='f'||s[i]=='F')ss[t++]=15;
    24             else {ss[t++]=s[i]-'0';
    25 
    26             }
    27 
    28         }
    29 
    30         int sum=0;int j=0;
    31         for(int i=t-1;i>=0;i--){
    32           sum+=ss[i]*pow(n,j++);
    33         }
    34 
    35         cout<<sum<<endl;
    36 
    37 
    38     }
    39 }
    View Code

    至于我发现的很牛很短的代码是这个样子的

     1 #include <stdio.h>
     2 #include <iostream>
     3 #include <string.h>
     4 #include <math.h>
     5 #include <stdlib.h>
     6 using namespace std;
     7 int main()
     8 {
     9     int m;//base(代表进制)
    10     char n[100];//char*nptr
    11     while(~scanf("%d %s",&m,&n))
    12     {
    13         printf("%d
    ",strtol(n,NULL,m));
    14         //必须设定endptr为NULL 否则返回非法字符串
    15     }
    16 }
    View Code

    里面的注释是大神打上去的。。。

    嘎嘎嘎,罪魁祸首就是strtol这个函数,不过他真的太方便啦嘿嘿

    long int strtol(const char *nptr, char **endptr, int base)

    *nptr指向的是在不同的进制下数的表示的字符串,base则为进制,char **endptr一般为空。

    你若盛开,清风自来...
  • 相关阅读:
    React 源码剖析系列 - 生命周期的管理艺术
    大数据浪潮下的前端工程师
    win7 秘钥
    Immutable 详解及 React 中实践
    js 设置日期函数
    node 一站式 学习 教程
    Python_如何定义带参数的装饰器?
    Python-装饰器中保留被装饰函数元数据
    Python-用装饰器实现递归剪枝
    Python-通过实例方法调用-统一接口的实现-getter methodcaller
  • 原文地址:https://www.cnblogs.com/shangjindexiaoqingnian/p/5729198.html
Copyright © 2011-2022 走看看