可以使用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 中不包括换行符。