i tried this
unsigned long A = atol(str.c_str());
it is still converting till 2,147,483,647 which is the upper limit of long data type. so just declaring a unsigned would only change the data type of the number stored in A but would not convert a number which is larger than
2,147,483,647.
still looking for converting a string with digits greater than 2,147,483,647 and less than 4,294,967,295 to unsigned long which actually increases the capacity of a number per say.
my observation thought i should share.