Няшная / Говнокод #23052 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
long func_strtol(char *p , char  **cpyar  , int type    ){
    long int  result = 0, stp =	0, t = 0,step  = 0,	 integer = 0, sign = 1;
   	if (*p == 45 ){ 
	   	sign = -1;
		step++;
	} 
	
	else if(*p ==  43){
			step++;
	}
    
	if (!type ){
       	type = 10;
	   }
	
	if( type >= 0 &&  type <= 10 ) {
		while ( isdigit(  p[step]))  {
			step++;
			}
		}
	
	else if( type >= 11 &&  type <= 36 ) {
		   while( (p[step ] -  55  <= ( type - 1 )  &&  isalpha(  p[step] ) || 
		          (p[step ] -  87  <= ( type - 1)   &&  isalpha(  p[step] ) ||    
				  isdigit(  p[step]) 
				   ) ) ) {
				step++; 
			}
		}
		stp =  step - 1;
	
	while( isalpha(  p[stp]    )   ||    isdigit(  p[stp] )){
			if( isalpha(  p[stp]    )  ){
				integer +=  p[stp] >= 97 ? (p[stp] - 87) *  pow(type,t) : (p[stp] - 55) *  pow(type,t);
		}
	
	else if((p[stp] - 48 ) < type ){
			 	integer +=  (p[stp] - 48) *  pow( type, t );
			}
				 stp--;
				 t++;
		    } 
	       *cpyar =   step == 1  && *p == '-'  ? &p[step - 1]: &p[step];
		result =  (integer )  * sign;
  
  return    result ;
}

Пойду почитаю "День Опричника"

Запостил: tyrin tyrin, (Updated )

Комментарии (1) RSS

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8