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
262
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
- 1472589
En kai koskaan saa sinua
Koska et usko että riitäisit minulle. Olet aina pitänyt itseäsi liian risana ja heikkona. Katkot korkeutesi, ja poraat k1541659Terveystalon lääkärit ylilaskuttaneet
Tämän pörriäiset osaavat, laskuttamisen. Terveystalo myöntää asian. https://www.hs.fi/suomi/art-2000011134269.html "K1331633Saran ökytyyli käänsi katseita.
On nyt kyllä Sara kasvoistaan, kuvan perusteella todellakin pyöristynyt ainakin kuvan perusteella.1491358- 661338
The Summit Suomi: Maxie avaa hyytävästä tilanteesta kuvauksissa: "Veri roiskui ja tajusi, että..."
Oletko seurannut The Summit Suomea? Tykkäätkö vai et tai mitä mieltä ylipäätään olet sarjasta? Moni katsoja on kaikonnut131180Työttömille lusmuille luvassa lisää keppiä
Hallitus aikoo kiristää velvoitteiden laiminlyönnistä seuraavia työttömyysturvan karensseja ensi vuodesta alkaen. Hall2821165- 156976
Miksi ihmeessä?
Erika Vikman diskattiin, ei osallistu Euroviisuihin – tilalle Gettomasa ja paluun tekevä Cheek22924Tiedän kaiken sinusta ja kaikesta
Tiedän miten kärsit. Tiedän millanen oikeesti oot. Tiedän miksi valehtelit, tiedän miksi satutit mua. Tiedän mitä tapaht58889