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

Zato sto sam lenj

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

[ Pregleda: 5424 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Jovan Marjanovic
HP GmbH
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 - pre 269 meseci
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
 
Odgovor na temu

Jovan Marjanovic
HP GmbH
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 - pre 269 meseci
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
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: Zato sto sam lenj15.02.2002. u 17:05 - pre 269 meseci
Citat:
blue:

Code:

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



Hehe, po ovakvim stvarima prepoznajem C programere na kilometar.
 
Odgovor na temu

Mikky

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

ICQ: 44582291


+58 Profil

icon Re: Zato sto sam lenj15.02.2002. u 22:28 - pre 269 meseci
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.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: Zato sto sam lenj15.02.2002. u 23:50 - pre 269 meseci
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.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

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



+6 Profil

icon Re: Zato sto sam lenj17.02.2002. u 02:47 - pre 269 meseci
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;
}

 
Odgovor na temu

Jovan Marjanovic
HP GmbH
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 - pre 269 meseci
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
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: Zato sto sam lenj18.02.2002. u 20:39 - pre 269 meseci
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].
 
Odgovor na temu

Jovan Marjanovic
HP GmbH
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 - pre 269 meseci
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
 
Odgovor na temu

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

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

Sajt: dejan.lekic.org


+2 Profil

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

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

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

Sajt: dejan.lekic.org


+2 Profil

icon Re: Zato sto sam lenj22.02.2002. u 08:29 - pre 269 meseci
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
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+165 Profil

icon Re: Zato sto sam lenj22.02.2002. u 11:22 - pre 269 meseci
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 :)
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: Zato sto sam lenj22.02.2002. u 15:50 - pre 269 meseci
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.
 
Odgovor na temu

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

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

Sajt: dejan.lekic.org


+2 Profil

icon Re: Zato sto sam lenj23.02.2002. u 11:38 - pre 269 meseci
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
 
Odgovor na temu

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

[ Pregleda: 5424 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

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