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
241
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
Aivosyöpää sairastava Olga Temonen TV:ssä - Viimeinen Perjantai-keskusteluohjelma ulos
Näyttelijä-yrittäjä Olga Temonen sairastaa neljännen asteen glioomaa eli aivosyöpää, jota ei ole mahdollista leikata. Hä912920Pelotelkaa niin paljon kuin sielu sietää.
Mutta ei mene perille asti. Miksi Venäjä hyökkäisi Suomeen? No, tottahan se tietenkin on jos Suomi joka ei ole edes soda2991686Mikä saa ihmisen tekemään tällaista?
Onko se huomatuksi tulemisen tarve tosiaan niin iso tarve, että nuoruuttaan ja tietämättömyyttään pilataan loppuelämä?2461567- 871391
IL - VARUSMIEHIÄ lähetetään jatkossa NATO-tehtäviin ulkomaille!
Suomen puolustuksen uudet linjaukset: Varusmiehiä suunnitellaan Nato-tehtäviin Puolustusministeri Antti Häkkänen esittel4021384Nyt kun Pride on ohi 3.0
Edelliset kaksi ketjua tuli täyteen. Pidetään siis edelleen tämä asia esillä. Raamattu opettaa johdonmukaisesti, että4021308Kiitos nainen
Kuitenkin. Olet sitten ajanmerkkinä. Tuskin enää sinua näen ja huomasitko, että olit siinä viimeisen kerran samassa paik21089Esko Eerikäinen tatuoi kasvoihinsa rakkaan nimen - Kärkäs kommentti "Ritvasta" lävähti somessa
Ohhoh! Esko Eerikäinen on ottanut uuden tatuoinnin. Kyseessä ei ole mikä tahansa kuva minne tahansa, vaan Eerikäisen tat381047Hyväksytkö sinä sen että päättäjämme ei rakenna rauhaa Venäjän kanssa?
Vielä kun sota ehkäpä voitaisiin välttää rauhanponnisteluilla niin millä verukkeella voidaan sanoa että on hyvä asia kun329874Miksi Purra-graffiti ei nyt olekkaan naisvihaa?
"Pohtikaapa reaktiota, jos vastaava graffiti olisi tehty Sanna Marinista", kysyy Tere Sammallahti. Helsingin Suvilahden257855