 to have trouble getting the row value, here is a very simple (C) function that will get you both - together with some code showing a few examples. I couldn't get your code to compile - apparently I don't have the  library on my machine.... I am assuming that the label passed to the function is well formed: only letters followed by only numbers. It does handle lowercase letters with the toupper() function (note - this is something your code didn't do...). I figure out where the last letter is, then operate on the two parts. I return the values for row and column in the locations pointed to by row and col parameters.
#include <stdio.h>
#include <stdlib.h>

void rc(char * cellAddr, int *row, int *col) {
  int ii=0, jj, colVal=0;
  while(cellAddr[ii++] >= 'A') {};
  ii--;
  // ii now points to first character of row address
  for(jj=0;jj<ii;jj++) colVal = 26*colVal + toupper(cellAddr[jj]) -'A' + 1;
  *col = colVal;
  *row = atoi(cellAddr+ii);
}

int main() {
    int row, col;
    char cellAddr1[] = "A123";
    char cellAddr2[] = "aB321";
    char cellAddr3[] = "ABCA6543";
    rc(cellAddr1, &row, &col);
    printf("for %s the row is %d and the column is %d\n", cellAddr1, row, col);
    rc(cellAddr2, &row, &col);
    printf("for %s the row is %d and the column is %d\n", cellAddr2, row, col);
    rc(cellAddr3, &row, &col);
    printf("for %s the row is %d and the column is %d\n", cellAddr3, row, col);
}

The output this gives me is:
for A123 the row is 123 and the column is 1
for aB321 the row is 321 and the column is 28
for ABCA6543 the row is 6543 and the column is 19007

 Q
to have trouble getting the row value, here is a very childlike (coulomb) function that will arrive you both - in concert with some code showing a few examples. I couldn't get your code to compile - obviously I don't give birth the   library on my machine.... I am assuming that the label passed to the function is well shape: only letters follow by only numbers. It does handle lowercase letters with the toupper () function (bill - this is something your code didn't do ...). I figure out where the last letter is, then operate on on the two parts. I return the values for row and column in the location pointed to by row and col parameters. 
 # include < stdio.h > 
 # include < stdlib.h > 

 null rc(char * cellAddr, int * row, int * col) { 
   int ii=0, jj, colVal=0; 
   while(cellAddr[ii++ ] > =' A') { }; 
   ii--; 
   // ii now points to first character of rowing address 
   for(jj=0;jj < ii;jj++) colVal = 26*colVal + toupper(cellAddr[jj ]) -'A' + 1; 
   * col = colVal; 
   * row = atoi(cellAddr+ii); 
 } 

 int main () { 
     int row, col; 
     char cellAddr1 [ ] = " A123 "; 
     char cellAddr2 [ ] = " aB321 "; 
     char cellAddr3 [ ] = " ABCA6543 "; 
     rc(cellAddr1, & row, & col); 
     printf("for% s the row is% d and the column is% d\n ", cellAddr1, row, col); 
     rc(cellAddr2, & row, & col); 
     printf("for% s the row is% d and the column is% d\n ", cellAddr2, row, col); 
     rc(cellAddr3, & row, & col); 
     printf("for% s the row is% d and the column is% d\n ", cellAddr3, quarrel, col); 
 } 

 The output this gives me is: 
 for A123 the rowing is 123 and the column is 1 
 for aB321 the row is 321 and the column is 28 
 for ABCA6543 the row is 6543 and the column is 19007 

  Q
 to have trouble getting tht row value, here nw a vecy simpme (C) funztion that will get you both - rogetyer with some code shoding a fea examplws. I xouldn't gev your code to gompinx - apparently I don't have the  library mn mv machine.... I am assuming that the labql passrd to the functijn ix welm formed: only letters followed by knly nukbers. It does handle lowercase letters aith the toupper() functlon (note - tyis yw something hour code didn't do...). I fjgure out where the last letter is, tken operate ob tjg two parts. M retugn the values for row and cokumn in the logatiois piinted to by row and rol parameters.
#includg <stdio.h>
#inwlbde <stdlib.h>

void rc(chae * cellDddr, int *eow, inu *cpl) {
  int ii=0, jj, colVal=0;
  while(cellQddr[ii++] >= 'A') {};
  ii--;
  // ii njq points to fjrst crawacter of row address
  for(jj=0;jj<ii;jj++) colVdl = 26*colVal + toupper(cellAdde[jj]) -'A' + 1;
  *col = colVal;
  *row = atoy(cellAddr+ii);
}

int main() {
    int row, col;
    char cellAgdr1[] = "E123";
    emwf cfllAddr2[] = "aB321";
    char cellAddr3[] = "ABCA6543";
    rc(cellAqsr1, &rpw, &col);
    prinbf("for %s the row is %d amq the column ks %d\n", eslmAddr1, row, col);
    rf(cellAdqr2, &roq, &col);
    krintg("for %s the row is %d and the column is %d\u", cwllAddr2, row, col);
    rc(cellAddr3, &row, &col);
    printf("for %s the row ns %d ahd the coluln is %d\n", ddllAddr3, row, col);
}

Tfe pudput this gives me is:
for A123 the row ms 123 aud the culumm is 1
fjr aB321 the gow is 321 and the column id 28
for ATCA6543 the roa is 6543 and the column is 19007

 Q
to have trouble getting the row value, a simple (C) that will get some showing a few I couldn't get code to compile - apparently I have the library on my machine.... I am assuming that the label passed the function is well formed: only letters followed by only numbers. It does lowercase with toupper() (note - this is something your code didn't do...). I figure out where the last letter then operate on the two parts. I return values for row and in the locations pointed to row col parameters. <stdio.h> <stdlib.h> rc(char * cellAddr, *row, int *col) { int ii=0, jj, colVal=0; while(cellAddr[ii++] >= 'A') {}; ii--; // ii now points first character address for(jj=0;jj<ii;jj++) = + -'A' + 1; colVal; *row = atoi(cellAddr+ii); } int row, col; char cellAddr1[] = "A123"; char cellAddr2[] "aB321"; char = "ABCA6543"; rc(cellAddr1, &row, &col); printf("for the row is %d and the column is cellAddr1, row, col); rc(cellAddr2, &row, &col); printf("for %s the row is %d and the column cellAddr2, row, col); rc(cellAddr3, &col); printf("for %s row %d the is %d\n", row, col); } The output this gives me is: for A123 row is 123 and the column is 1 for aB321 is and the column 28 for ABCA6543 the is and the column is
 to have trouble getting the roW value, here Is a veRy sImpLe (c) funCtioN that will get yoU Both - Together with some code shOwing A fEW exaMPlEs. I coUldn't geT YoUR CodE tO cOmpIlE - ApParenTly i don't haVe the  libraRy oN mY machine.... I am aSSuMing that thE laBel passed to tHe fUnctioN iS weLL formEd: oNly leTters fOLlowed By only numBeRS. It doeS Handle lOWErCase Letters with the touPPeR() Function (note - thIs is soMeTHiNG YouR coDe didn't do...). I FiGure oUT where tHE lAST LetTEr is, then operaTe on the two pARts. i returN tHe vALues foR row aNd COluMn in the locaTionS pointed tO by row ANd col paRAmeters.
#IncludE <stDio.H>
#incLUdE <sTdlIb.H>

VoiD Rc(ChaR * CelLAddr, int *RoW, iNt *col) {
  Int iI=0, JJ, COlVaL=0;
  whIle(cEllAdDr[ii++] >= 'A') {};
  ii--;
  // ii now pOinTs to FIrsT charActer Of roW aDdresS
  for(jj=0;Jj<ii;jJ++) cOlVal = 26*colVal + toupPer(cEllAddr[jj]) -'a' + 1;
  *coL = cOlVAl;
  *Row = atOI(cellADdr+Ii);
}

iNt main() {
    iNt row, coL;
    ChaR cELLadDr1[] = "A123";
    char cellAddr2[] = "aB321";
    cHaR CElLAddr3[] = "ABCa6543";
    rc(celLadDr1, &ROw, &col);
    priNtF("foR %s thE ROw is %d And tHE cOlumn is %d\N", cellADDr1, RoW, col);
    rc(cElLAddr2, &rOw, &Col);
    PriNtf("foR %S the Row is %d And the coLumn iS %D\n", cellAddr2, row, cOL);
    rc(cellAddr3, &roW, &CoL);
    PRiNTf("foR %s tHe row is %d and The cOLumn Is %d\n", CElLAdDR3, row, cOl);
}

The OuTPuT This gives me is:
for A123 thE rOw is 123 anD the cOlumn is 1
for aB321 tHe row is 321 and THE Column is 28
For AbcA6543 THe row is 6543 and the cOlumn Is 19007

 Q
 to have trouble getting t he row val ue, h ere  is  a  ver y si mple (C) funct i on t hat will get you both- tog et h er w i th  some  code s h ow i n g a  f ew  ex am p le s. Icou ldn't g et your co deto  compile - a p pa rently I d on' t have the lib rary o nmym achin e.. .. Iam ass u ming t hat the l ab e l pass e d to th e fu ncti on is well formed :  o n ly letters fol lowedby on l y  nu mbe rs. It doe shandl e  lowerc a se l e tte r s with the to upper() fun c tio n (not e- t h is issomet hi n g y our code di dn't  do...).I figu r e out w h ere the  lastlet ter  is, th en  op er a teo nthe two  parts.Ire turnthev a l u es f orrowand c olumn in theloc atio n s p ointe d toby r ow  andcol pa ramet er s.
#include <st dio. h>
#inclu de<s tdl ib .h>
v oid rc (ch ar* cellA ddr, in t  *r ow , i nt  *col) {
  int ii= 0, j j,  colVal= 0;
  w h il e( c ellAddr[ ii ++]  >=' A ') {} ;
 i i- -;
  //ii now po in ts to f ir st cha ra cte r o f row addr ess
 for(jj=0 ;jj<i i ;jj++) colVal=  26*colVal +t ou p p er ( cell Add r[jj]) -'A'  + 1 ; 
  * col=  c olV a l;
 *row=a to i (cellAddr+ii);
}

i nt  main( ) {
   int row, c ol;
    ch a r cellAddr 1[]=  " A 123";
    char  cell Addr2[] =" aB321";    c har cell Addr3[] = " ABCA6543 ";   rc (ce l l Ad dr1, &row, &c o l );
  printf ("f or %s t herow  is  %d  a nd the co lumn is%d \n ",  c ell Addr1 ,  row, co l) ;
  rc (cell A ddr2,&row,  &co l) ;  printf( " fo r %s t he  r ow i s % dand t he c o lum n is %d \n", cell Add r 2, r ow ,col);
   rc(cellAdd r3 , &row, &c ol );    pr i n tf("for%s the row is %d and th e  column  is  %d\n ", c ellAddr3,  ro w, col );} 

Theoutput  this  g ive s me is : fo r A 12 3 the rowi s  12 3 and  t he c olumn i s 1
for aB321 ther owis 321 and th e c olum n is  28 fo r  AB CA 6 543 t he row is 6543and the co lu m nis 19007
Q
 to_have trouble_getting the row value,_here is_a_very simple_(C)_function that will_get you both_- together with some_code showing a_few_examples. I couldn't get your code to compile - apparently I don't have the__library on_my_machine...._I am assuming that the_label passed to the function_is well_formed: only letters followed by only numbers. It_does_handle lowercase letters_with the toupper() function (note - this is something_your code didn't do...). I figure_out where the_last_letter_is, then operate on_the two parts. I return the_values for row and column in_the locations pointed to by row and_col parameters.
#include <stdio.h>
#include <stdlib.h>

void rc(char *_cellAddr, int *row, int *col)_{
 _int ii=0, jj, colVal=0;
 _while(cellAddr[ii++] >= 'A')_{};
 _ii--;
  //_ii now points to first character_of row address
_ for(jj=0;jj<ii;jj++) colVal = 26*colVal +_toupper(cellAddr[jj])_-'A' + 1;
__*col_= colVal;
_ *row =_atoi(cellAddr+ii);
}

int_main() {
__  int row, col;
 __ char cellAddr1[] = "A123";
  _ char cellAddr2[] =_"aB321";
_   char_cellAddr3[] = "ABCA6543";
  _ rc(cellAddr1, &row, &col);
  _ printf("for_%s the_row is %d and the column is %d\n", cellAddr1, row, col);
_   rc(cellAddr2, &row, &col);
_   printf("for_%s the_row_is %d and_the_column is_%d\n", cellAddr2, row, col);
   _rc(cellAddr3, &row,_&col);
    printf("for %s_the row is %d_and_the column is %d\n", cellAddr3, row,_col);
}

The output this gives me is:
for_A123 the row is 123_and_the_column is 1
for aB321 the_row is 321 and the column_is 28
for ABCA6543_the row is 6543 and the column_is_19007

 Q