What is the problem in my code. it is not giving the right ans

#include
#include
#include<math.h>
using namespace std;

int strint(char *a,int l,int k)
{ int sum=0;
if(l<0)
{
return 0;
}
sum = a[l]*pow(10,k)+strint(a,l-1,k+1);
return sum;
}

int main()
{
char a[100];
int l,k=0,res;
cin.getline(a,100);
l=strlen(a);
res=strint(a,l-1,k);
cout<<res;
return 0;
}