Srodne teme
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zato sto sam lenj

[es] :: C programiranje :: Zato sto sam lenj

[ Pregleda: 2483 | Odgovora: 13 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Jovan Marjanovic
Stuttgart

Član broj: 942
Poruke: 456
*.net.external.hp.com

ICQ: 42
Sajt: www.hp.com


Profil

icon Zato sto sam lenj15.02.2002. u 09:50

Naime, kako bi se izvela naj jednostavnija implementacija "trim" funkcije koja postoji u pascalu naprimer. Smisao funkcije je da "trimuje" stringove, tj da skida spejsove sa pocetka ili kraja stringa. Ja sam se igrao sa time, ali mi nijedna varijanta koju sam napisao ne odgovara.
Implementacija koja me zanima bi trebala da bude cisti ANSI C.
Za automatsko dobijanje Super Moderatorskog statusa na Elitesecurity forumima pritisnite Alt+F4
15.02.2002. u 09:50 

Jovan Marjanovic
Stuttgart

Član broj: 942
Poruke: 456
*.net.external.hp.com

ICQ: 42
Sajt: www.hp.com


Profil

icon Re: Zato sto sam lenj15.02.2002. u 12:58
I sada da odgovorim sam sebi posto nisam bas tolika lenstina :)

ovo bi trebalo da radi za right trim koji mi i treba

Code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

char *trim(char *str)
{
        int i;

        if(str && 0 != (i=strlen(str)))
        {
                while (--i >= 0)
                {
                        if(!isspace(str[i]))
                                break;
                }
                str[++i] = '\0';
        }

        return str;
}




Za automatsko dobijanje Super Moderatorskog statusa na Elitesecurity forumima pritisnite Alt+F4
15.02.2002. u 12:58 

Dragi Tata

Član broj: 1958
Poruke: 3899
199.171.112.*

Sajt: www.novetehnologije.com


Profil

icon Re: Zato sto sam lenj15.02.2002. u 17:05
Citat:
blue:

Code:

        if(str && 0 != (i=strlen(str)))



Hehe, po ovakvim stvarima prepoznajem C programere na kilometar.
15.02.2002. u 17:05 

Mikky

Član broj: 18
Poruke: 1470
*.69.EUnet.yu

ICQ: 44582291
Sajt: www.asmdev.net


Profil

icon Re: Zato sto sam lenj15.02.2002. u 22:28
jest' da imam malo iskustva sa drugim HLL jezicima osim c/c++
ali po cemu su to C programeri toliko prepoznatljivi :)
-I know UNIX, PASCAL, C, FORTRAN, COBOL, and nineteen other high-tech words.
15.02.2002. u 22:28 

Dragi Tata

Član broj: 1958
Poruke: 3899
199.171.112.*

Sajt: www.novetehnologije.com


Profil

icon Re: Zato sto sam lenj15.02.2002. u 23:50
Citat:
Mikky:
jest' da imam malo iskustva sa drugim HLL jezicima osim c/c++
ali po cemu su to C programeri toliko prepoznatljivi :)


Po "ne baš čitljivim" konstrukcijama kao što je ona gore. C programeri vole "spartanski" kod: uradi što više stvari u što manje linija.
15.02.2002. u 23:50 

Dragi Tata

Član broj: 1958
Poruke: 3899
..ndg-pm4-1.dialup.nethere.net

Sajt: www.novetehnologije.com


Profil

icon Re: Zato sto sam lenj17.02.2002. u 02:47
Nego, da ne ispadne kako samo zanovetam, evo levog i desnog trima u C++u. Ovo radi sa ma kojim character setom, uključujući i UNICODE.

Code:

#include <string>
#include <set>
#include <iostream>
using namespace std;

template <typename CharType>
void TrimLeft(basic_string<CharType>& str, const set <CharType>& spaceCharacters)
{
    basic_string<CharType>::iterator it;

    for (it = str.begin(); it != str.end(); ++it)
    {
        if (spaceCharacters.find(*it) == spaceCharacters.end())
        {
            str.erase(str.begin(), it);
            return;
        }          
    }
}

template <typename CharType>
void TrimRight(basic_string<CharType>& str, const set <CharType>& spaceCharacters)
{
    basic_string<CharType>::iterator it;

    for (it = str.end() - 1; it != str.begin(); --it)
    {
        if (spaceCharacters.find(*it) == spaceCharacters.end())
        {
            str.erase(it + 1, str.end());
            return;
        }          
    }
}

int main()
{
    set<char> spaceChars;
    spaceChars.insert (' ');
    spaceChars.insert ('t');

    string str("    abc             ");
    TrimLeft(str, spaceChars);
    TrimRight(str, spaceChars);
    cout << str;
}

17.02.2002. u 02:47 

Jovan Marjanovic
Stuttgart

Član broj: 942
Poruke: 456
*.net.external.hp.com

ICQ: 42
Sajt: www.hp.com


Profil

icon Re: Zato sto sam lenj18.02.2002. u 12:08
Mislim da sam se odavno deklarisao za C programera :))

Inace, glavni princip svakog pravog C programera je da napise kod koji samo on moze da procita i odrzava :)

(sala mala, posalica)
Za automatsko dobijanje Super Moderatorskog statusa na Elitesecurity forumima pritisnite Alt+F4
18.02.2002. u 12:08 

Dragi Tata

Član broj: 1958
Poruke: 3899
199.171.112.*

Sajt: www.novetehnologije.com


Profil

icon Re: Zato sto sam lenj18.02.2002. u 20:39
Citat:
blue:
Mislim da sam se odavno deklarisao za C programera :))

Inace, glavni princip svakog pravog C programera je da napise kod koji samo on moze da procita i odrzava :)

(sala mala, posalica)


Hehe, možda imaš pravo. Zašto da svaki pacer čita i održava tvoj kod?

Nego, dobro bi bilo da promeniš ime brojača od i u recimo j. Kada staviš i u uglaste zagrade, forum misli da je to oznaka za italic i ne prikaže ga uopšte. Pomisliće neko da si greškom napisao str umesto str[j].
18.02.2002. u 20:39 

Jovan Marjanovic
Stuttgart

Član broj: 942
Poruke: 456
*.net.external.hp.com

ICQ: 42
Sajt: www.hp.com


Profil

icon Re: Zato sto sam lenj21.02.2002. u 09:18
Da, primetio sam da nesto nije bilo kako treba sa tim kodom.
Mozda bi gojko mogao malo da sheka forum pa da sve sto je uzmedju code tagova bude ne-formatirano dalje.
Za automatsko dobijanje Super Moderatorskog statusa na Elitesecurity forumima pritisnite Alt+F4
21.02.2002. u 09:18 

leka
Dejan Lekić
senior software engineer, 3Developers Ltd.
London, UK

Član broj: 234
Poruke: 2530
*.racasse.se

Sajt: dejan.lekic.org


Profil

icon Re: Zato sto sam lenj22.02.2002. u 07:39
Tabovi su problem zapravo... HTML ne razlikuje TAB i SPACE.
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
22.02.2002. u 07:39 

leka
Dejan Lekić
senior software engineer, 3Developers Ltd.
London, UK

Član broj: 234
Poruke: 2530
*.racasse.se

Sajt: dejan.lekic.org


Profil

icon Re: Zato sto sam lenj22.02.2002. u 08:29
Evo ga moje resenje sklepano pre spavanja:
Code:

char* rtrim(char* szStr)
{
    int ii = strlen(szStr)-1;
    while (isspace(szStr[ii]) && ii >= 0) 
        ii--;
    szStr[ii+1]='\0';
    return strdup(szStr);   
} // rtim()


Pozdrav svima citamo se sutra :))))

Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
22.02.2002. u 08:29 

Gojko Vujovic
Juniper Networks
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13173
*.gojko.ss.

Sajt: www.gojkovujovic.com


Profil

icon Re: Zato sto sam lenj22.02.2002. u 11:22
Mogu da napravim da uopste ne prepoznaje ubb codes ako poruka sadrzi [ code ] i [ /code ] tagove.

Time bi [ i ] i slicni tagovi ostali netaktnuti.

Imate bolji predlog/resenje? PHP molim :)
22.02.2002. u 11:22 

Dragi Tata

Član broj: 1958
Poruke: 3899
199.171.112.*

Sajt: www.novetehnologije.com


Profil

icon Re: Zato sto sam lenj22.02.2002. u 15:50
Citat:
Gojko Vujovic:
Mogu da napravim da uopste ne prepoznaje ubb codes ako poruka sadrzi [ code ] i [ /code ] tagove.

Time bi [ i ] i slicni tagovi ostali netaktnuti.



Odličan predlog.
22.02.2002. u 15:50 

leka
Dejan Lekić
senior software engineer, 3Developers Ltd.
London, UK

Član broj: 234
Poruke: 2530
*.telia.com

Sajt: dejan.lekic.org


Profil

icon Re: Zato sto sam lenj23.02.2002. u 11:38
Ne znam po cemu je odlican predlog? Ja ne vidim nista dobro u tome... Treba videti sta BB stavlja za code , ako stavlja CODE onda to izmeniti da bude PRE, ako ni PRE ne pomaze onda nam nece pomoci nista, osim da se napravi sistem da se BB-u nekako da na znanje da je taj kod C kod i da on pozove neki alat koji ce da sredi sve i prikaze kod kako valja...
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
23.02.2002. u 11:38 

[es] :: C programiranje :: Zato sto sam lenj

[ Pregleda: 2483 | Odgovora: 13 ]

Postavi temu Odgovori

Srodne teme
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.