当前位置:首页 > 通信资讯 > 正文

c++字符串中的数字(字符串是%c)

c++字符串中的数字(字符串是%c)

计算机底层是一堆逻辑电路,记录信息只能以数值的形式。

因此对于一个字符 a ,计算机记录其为值 97 。

这个值与字符的对应关系是人们约定好的,这里使用的对应表为 ASCII Table 。

在 ASCII Table 里, a 对应 97 , b 对应 98 ... 字符 1 对应数值 49 。

之所以写这篇笔记是因为一些算法题的要求,比如,我们需要统计 26 个小写英文字母出现频率,在算法题中,完全没必要开一个哈希表,开一个 26 长度的整数数组就行。

  1. intcnt[26];

当我们读入一个字符时,则进行一次强制类型转换,就实现了哈希表功能。

  1. charc;
  2. cin>>c;
  3. cnt[c-'a']++;

当读入的数字是 'a' 时, 'a' - 'a' == 0 ,则实现了哈希的功能。

我不禁发问:

  • 上述过程的逆过程如何实现呢?比如给我数值 97 ,我如何才能得到其在 ASCII 表里对应的字符 'a' ?
  • 如果在字面上转换呢?
    • 比如给我数值 97 ,我如何才能得到字符串 "97" ?
    • 比如给我字符串 "97" ,我如何才能得到数值 97 ?

不熟悉的话,做题时容易被卡脖子。在此总结 C++ 和 Python。

C++

数字到字符(ASCII码)

  1. //强制转换,根据ASCII码
  2. inttmp=97;
  3. charac=tmp;
  4. cout<<ac<<endl;//输出a

数字到字符串(表面值)

  1. inttmp=97;
  2. stringas=to_string(tmp);
  3. cout<<as<<endl;//输出97

字符到数字(ASCII码)

  1. chara;
  2. cin>>a;
  3. intnum1=a-'0';
  4. intnum2=a-'A';
  5. intnum3=a-'a';

字符串到数字(表面值)

  1. stringb;
  2. cin>>b;
  3. intnum4=stoi(b);
  4. floatnum5=stof(b);
  5. doublenum6=stod(b);
  6. longdoublenum7=stold(b);

Python

数字到字符(ASCII码)

  1. #强制转换,根据ASCII码
  2. tmp:int=97
  3. ac:str=chr(tmp)
  4. print(ac)#输出a

数字到字符串(表面值)

  1. tmp:int=97
  2. a_s:str=str(tmp);
  3. print(a_s)#输出97

字符到数字(ASCII码)

  1. a:str='a'
  2. num:int=ord(a)
  3. print(num)

字符串到数字(表面值)

  1. b:str="123"
  2. c:str="123.45"
  3. num2:int=int(b)
  4. num3:float=float(c)
  5. print(num2)#123
  6. print(num3)#123.45

原文链接:https://mp.weixin.qq.com/s/kz8pm63s8VTq1Os2IfclbQ

如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

为您推荐:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。