Ghecco

censura_stringa(stringa[], bool:email)

Jul 1st, 2020
69
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. stock censura_stringa(stringa[], bool:email)
  2. {
  3.     new str_return[256];
  4.     if(email)
  5.     {
  6.         // str_nickname = Nome prima di @ estratto - *Estrae il Nickname*
  7.         new str_nickname[256], nicklen = strfind(stringa, "@", false);
  8.         strmid(str_nickname, stringa, 0, nicklen, sizeof(str_nickname));
  9.  
  10.         // str_provider = Provider  Esempio: gmail - *Estrae il Provider*
  11.         new str_provider[256], providerlen = strfind(stringa, ".", false);
  12.         strmid(str_provider, stringa, nicklen+1, providerlen, sizeof(str_provider));
  13.  
  14.         // str_dominio = dominio Esempio:.com .it *Estrae il dominio*
  15.         new str_dominio[5], emaillen = strlen(stringa);
  16.         strmid(str_dominio, stringa, providerlen, emaillen, sizeof(str_dominio));
  17.  
  18.  
  19.  
  20.  
  21.  
  22.         // *Censura parte del Nick*
  23.  
  24.         new partenome = nicklen/2-1;
  25.         strdel(str_nickname, partenome, nicklen-1); // rimuovi i caratteri poi sostituiti da *
  26.  
  27.         new caratteri_nome_censurare = nicklen-partenome-1; // * da inserire
  28.        
  29.         for(new i; i < caratteri_nome_censurare; i++) // inserisce * rimossi
  30.         {
  31.             strins(str_nickname, "*", partenome, sizeof(str_nickname));
  32.             partenome++;
  33.         }
  34.  
  35.  
  36.         // *Censura parte del provider*
  37.         providerlen = strlen(str_provider);
  38.         new parteprovider = providerlen/2-1;
  39.  
  40.         strdel(str_provider, parteprovider, providerlen-1);
  41.  
  42.         new caratteri_provider_censurare = providerlen-parteprovider-1; // * da inserire
  43.  
  44.         for(new a; a < caratteri_provider_censurare; a++) // inserisce * rimossi
  45.         {
  46.             strins(str_provider, "*", parteprovider, sizeof(str_provider));
  47.         }
  48.  
  49.  
  50.         //formatta l'email completa
  51.         format(str_return, sizeof(str_return), "%s@%s%s", str_nickname, str_provider, str_dominio);
  52.     }
  53.     else // se vuoi censurare una stringa
  54.     {
  55.         strins(str_return, stringa, 0, sizeof(str_return));
  56.  
  57.         new censuralen = strlen(str_return);
  58.         new partecensura = censuralen/3-1;
  59.  
  60.         strdel(str_return, partecensura, censuralen-1); // rimuovi i caratteri poi sostituiti da *
  61.  
  62.         new caratteri_censura_censurare = censuralen-partecensura-1; // * da inserire
  63.        
  64.         for(new i; i < caratteri_censura_censurare; i++) // inserisce * rimossi
  65.         {
  66.             new spaziopos = strfind(stringa," ", true, partecensura);
  67.  
  68.             if(spaziopos == partecensura) // se c'è uno spazio nella stringa pre-censurata(stringa), l'aggiunge alla nuova stringa
  69.             {
  70.                 strins(str_return, " ", partecensura, sizeof(str_return));
  71.                 partecensura++;
  72.                
  73.             }
  74.             else //Sennò aggiunge un *
  75.             {
  76.                 strins(str_return, "*", partecensura, sizeof(str_return));
  77.                 partecensura++;
  78.             }
  79.         }
  80.     }
  81.  
  82.     return str_return;
  83. }
RAW Paste Data