english number to decimal number code example
Example 1: english to decimal
#include<iostream>
#include<string>
#include<limits>
inline std::string binary_conv(int,int,std::string);
int main()
{
long int number;
int base {27};
std::cout<<"\nPlease enter a non-negative integer:\t";
std::cin>>number;
while(1)
{
if(std::cin.fail())
{
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
std::cout<<"\nYou have entered wrong input!"<<std::endl;
std::cout<<"\nPlease enter a non-negative integer:\t";
std::cin>>number;
}
if(!std::cin.fail())
break;
}
std::string binary_number;
binary_number = binary_conv(number,base,binary_number);
std::cout<<binary_number<<std::endl;
return 0 ;
}
std::string binary_conv(int number, int base,std::string binary)
{
std::string zero_one = " abcdefghijklmnopqrstuvwxyz";
if(number==0)
return binary;
binary = zero_one[number%base]+binary;
number/=base;
return binary_conv(number,base,binary);
}
Example 2: english to decimal
#include<iostream>
#include<cmath>
#include<limits>
#include<string>
void print_value(const size_t value);
bool isalpha_isspace(const std::string&);
int main()
{
std::string eng2dec;
std::cout<<"\nPlease enter a string of small letters and spaces:\t";
getline(std::cin,eng2dec);
bool answer = isalpha_isspace(eng2dec);
if(answer == false)
{
std::cout<<"\nThe input string does not represent a number in base 27"<<std::endl;
exit(1);
}
size_t value {0};
int decimal {0};
for(size_t i {0}; i<eng2dec.length(); ++i)
{
if(eng2dec[i]==' ')
{
decimal=0;
}else{
int power = (eng2dec.length()-1-i);
decimal = eng2dec[i]%96;
value+= decimal*pow(27,power);
}
if(value > pow(2,32)){
std::cout<<"\nThe input string represents a number that is greater than 2ˆ32" <<std::endl;exit(1);
}
}
print_value(value);
return 0 ;
}
bool isalpha_isspace(const std::string& str )
{
bool answer ;
for(char c: str){
if(isalpha(c) || isspace(c))
{
answer = true;
}else
{
answer= false;
}
}
return answer ;
}
void print_value(const size_t value){
std::cout<<value<<std::endl;
}