Tilanne: merkkijono str1 ---abcd1234----
Miten saan luettua tuosta vain tuon abcd1234 osuuden?
Meneekö kaikissa järjestelmissä ihan vaan strncpy(destination,source 3,8) ?
(Dev-C:llä näkyy ainakin toimivan?)
Onko eri ympäristöissä merkitystä päättääkö merkkijonoja '\0' ?
Miten merkkijonoja luettaessa on paras tapa "ohittaa" merkkejä, jotta löytää oikean kohdan josta alkaa lukea?
Löytyykö hyviä sivuja missä on erilaisia "kikkoja" miten eri tavoilla noita merkkijonojen käsittely funktioita voi käyttää? Minulle tuo source 3 oli ainakin ihan uutta ja puolivahingossa sitä kokeilin.
merkkijonon lukemista
3
219
Vastaukset
- kdslkadslkas
Tuossa 'source 3' toimii C:n osoitin artitmetiikka (pointer arithmetic), joka on perusjuttuja C:ssä ja olennaisen tärkeää C-koodarin osata. Kuukleta niin löytyy varmaan hyviä selityksiä aiheesta tai hommaa Se Kirja (on myös suomennettu):
http://en.wikipedia.org/wiki/The_C_Programming_Language_(book)- fistbase
kirjoja aiheesta kyllä on, mutta ei ole koskaan aikaismmin kyseistä asiaa tullut vastaan enkä edes ajatellut tuota osoitinaritmetiikkaa.
ajatellaanpas sitten tilanne että tuo luettava merkkijono on aina vaikkapa 10 merkkiä (--abcd1234), mutta jos käyttäjä on antanutkin vähemmän merkkejä esim abc tulee merkkijonosta -------abc automaattisesti eli nuo - merkit lisääntyvät tuohon eteen.
jos nyt luetaan tuota merkkijonoa, miten luetaan - merkit pois? - ödölkalkösa
fistbase kirjoitti:
kirjoja aiheesta kyllä on, mutta ei ole koskaan aikaismmin kyseistä asiaa tullut vastaan enkä edes ajatellut tuota osoitinaritmetiikkaa.
ajatellaanpas sitten tilanne että tuo luettava merkkijono on aina vaikkapa 10 merkkiä (--abcd1234), mutta jos käyttäjä on antanutkin vähemmän merkkejä esim abc tulee merkkijonosta -------abc automaattisesti eli nuo - merkit lisääntyvät tuohon eteen.
jos nyt luetaan tuota merkkijonoa, miten luetaan - merkit pois?"kirjoja aiheesta kyllä on, mutta ei ole koskaan aikaismmin kyseistä asiaa tullut vastaan enkä edes ajatellut tuota osoitinaritmetiikkaa."
Huonot kirjat?
Eräs tapa, joka tosin tuhoaa alkuperäisen, mutta ota mallia jos ei suoraan sovellu:
void strip_char(char *str, char ch)
{
char *start, *end;
// etsitään alku
start = str;
while (*start == ch)
start ;
// str:n loppuun
end = start;
while (*end != '\0') end ;
//etsitään loppu
do { end--; } while (*end == ch);
// kopioidaan törkeesti päälle
while (start "abc--123"
Poistaa siis alusta ja lopusta, mutta ei välistä. Vertaa:
http://en.wikipedia.org/wiki/Trim_(programming)
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Katso: Ohhoh! Miina Äkkijyrkkä sai käskyn lähteä pois Farmi-kuvauksista -Kommentoi asiaa: "En ole.."
Tämä oli shokkiyllätys. Oliko tässä kyse tosiaan siitä, että Äkkijyrkkä sanoi asioita suoraan vai mistä.... Tsemppiä, Mi1365678- 333485
Haluan jutella kanssasi Nainen
Olisiko jo aika tavata ja avata tunteemme...On niin paljon asioita joihin molemmat ehkä haluaisimme saada vastaukset...O171893Poliisiauto Omasp:n edessä parkissa
Poliisiauto oli parkissa monta tuntia Seinäjoen konttorin edessä tänään. Haettiinko joku tai jotain pankista tutkittavak231875Onko mies niin,
että sinulle ei riitä yksi nainen? Minulle suhde tarkoittaa sitoutumista, tosin eihän se vankila saa olla kummallekaan.241720Voitasko leikkiä jotain tunnisteleikkiä?
Tietäisi ketä täällä käy kaipaamassa.. kerro jotain mikä liittyy sinuun ja häneen eikä muut tiedä. Vastaan itsekin kohta741566Tietysti jokainen ansaitsee
Hän varmasti ansaitsee vain parasta ja sopivinta tietenkin, suon sen onnen hänelle enemmän kuin mielelläni. Aika on nyt141473Armi Aavikko Malmin hautausmaa
Haudattiinko Armi arkussa Malmin hautausmaalle vai tuhkattiinko hänet? Kuka tietää asiasta oikein?111366Haluisin suudella ja huokailla
ja purra kaulaasi ja rakastella sinua. Haluisin puristella rintojasi ja pakaroitasi. Ei sinulla taida olla kuitenkaan ni171360Miksi näin?
Miksi vihervassut haluaa maahan porukkaa jonka pyhä kirja kieltää sopeutumisen vääräuskoisten keskuuteen? Näin kotoutumi231308