using System.Text.RegularExpressions;
using System.Collections.Generic;
public static void Main(){
Console.Write("Type in your input: ");
string str = Console.ReadLine();
int ansInint = MyAtoi(str);
Console.WriteLine("Your input was :{0} and converting it to int :{1} =" ,str,ansInint);
public static int MyAtoi(string str) {
Console.WriteLine("---------------------------");
if (str =="" || str == " ") return 0;
Dictionary<char,int> dict = new Dictionary<char,int>()
string trimmedStr = str.Trim();
Console.WriteLine("trimmedStr: "+trimmedStr);
Console.WriteLine("trimmedStr.Length: "+trimmedStr.Length);
if (trimmedStr == "" || trimmedStr == "+")return 0;
if (trimmedStr[0] == '-' && trimmedStr.Length == 1) return 0;
if (trimmedStr[0] == '+' && trimmedStr[1] == '-' || trimmedStr[0] == '-' && trimmedStr[1] == '+' || trimmedStr[0] == '.') return 0;
if (dict.TryGetValue(trimmedStr[0], out alphaB))
if (dict[trimmedStr[0]]== -1 ){
if (!dict.ContainsKey(trimmedStr[1])) return 0;
if (dict[trimmedStr [1]] == -1) return 0;
trimmedStr = Regex.Replace(trimmedStr, "[^0-9.-^a-z ]", "");
Console.WriteLine("Reg trimmedStr:"+trimmedStr);
foreach (char s in trimmedStr)
if (dict.ContainsKey(s)){
if (numCounter > 0 && dict[s] == 10 && numCounter < trimmedStr.Length -1 )
else if (numCounter > 0 && dict[s] == -1)
Console.WriteLine("NumCounter:"+numCounter);
Console.WriteLine("TrimmedStr length after check:"+trimmedStr.Length);
if (trimmedStr.Length != 0) {
if (trimmedStr[trimmedStr.Length-1] == '-') numCounter--;
Console.WriteLine("NumCounter:"+numCounter);
trimmedStr = trimmedStr.Substring(0,numCounter);
int[] allInts = new int [trimmedStr.Length];
foreach (char s in trimmedStr){
if(dict.ContainsKey(s)&& dict[s]!= 10 &&dict[s]!= 12) allInts[c++]= dict[s];
if(dict[s] == 10) negative = true;
if(dict[s] == 12) deci = true;
int lengthCheck = negative ? trimmedStr.Length - 1 : trimmedStr.Length;
if (deci) lengthCheck --;
for (int n = 0; n< lengthCheck ; n++){
ans += x/(Math.Pow(10,power));
ans *= Math.Pow(10,power-1);
if (deci) ans /= Math.Pow(10,c-1);
Console.WriteLine("ans b4 ret: "+ans);
if (ans>= Int32.MaxValue ) ans = Int32.MaxValue;
if (ans <= Int32.MinValue ) ans = Int32.MinValue;
ans = Convert.ToInt32(ans);
Console.WriteLine("ans after intMAx: "+ans);