1. Си / Говнокод #23052

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 21 Мая 2017

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

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