对于C++里面数字字符与数字相互转换

可以使用string接收输入,再用(sin[i]-‘0’ == j) 把字符串分成数字,因为不管什么样的数据类型都无法放1000位的整数判断这个值的范围 如果是’0’到’9’ 减去’0’就是想要的整数的。
数字字符转换为数字:
1)最简单的是让数字字符去减‘0’得到的就是数字的值。
示例如下:

char c=‘0’; //'1','2','3',.....'9'
int num=0;
num = int(c - '0');

因为ASC码48就是’0’,也就是说’0’的值是48,而后依次是’1’到’9’。这样正好是char型减去48就是它对应的int值不过这样写不好理解,直接写成str[i]-'0’就好。
下面给出两种写法

    string sin;
    int ans[10] = {0};
    cin >> sin;
    for (int i=0;i<sin.length();i++)
    {
        for(int j=0;j<10;j++)
        {
            if((sin[i]-'0' == j))
            {
               ans[j]++ ;
               break;
            }
        }
    }
if((str[a-1]-48)%2==0){
        if(str[0]=='-'){
            c=1.5;
            sum=c*((double)b/(a-1))*2;
        }else{
            c=1;
            sum=c*((double)b/(a))*2;
        }
    }

2)用函数atoi可以把字符转为数字。

在这里插入代码片

2.数字转换为数字字符
1.int转char 类型 和数字字符转数字相反 我们可以加上 ‘0’的ASCII 就可以变为char类型
int a=1;
char c=a+‘0’; //c的值就是’1’的ASCII码值

3.数字加上 英文字符 表示之后的字母

    'A'+1 = 'B'
    char b[20];
    b[ j] = k + 'A';//数字加上 英文字符A表示之后的英文字符

C++中读取需要输入的一行字符串
这个知识点必须掌握,因为是必备技能!

#include<bits/stdc++.h>
using namespace std;
int main(){
    //对于char / char[]
    char s[1001];
    cout<<"input:"<<endl;
    cin.getline(s, 1000);
    //iostream下的函数, 第二个参数表示允许的最大输入长度
    cout<<"Output:"<<endl<<s<<endl<<strlen(s)<<endl;

    //对于string
    string ss;
    cout<<"input string:"<<endl;
    getline(cin, ss); //这个getline函数在<string>头文件下
    cout<<"Output:"<<endl<<ss<<endl<<ss.length()<<endl;
    return 0;
}
 

下图是程序运行的截图
cin.get() 函数主要有两种用法:

不带参数的 cin.get(),可以从标准输入流读取一个字符,包括空格,换行

带参数的 cin.get(char* str, int size),可以一次最大读取 size 个字符放入 str 数组中,遇到换行符则结束读取,读取的 str 中不包括换行符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值