Kiitos "nm", todella paljon!
a.) miksi vertaat, jos syötteiden lukumäärä on pienempi, kuin 2? Numerointi varmaan alkaa ykkösestä, mutta onko ensimmäinen parametrialkio aina tyhjä vakiona vai mistä tuo 2:een vertaus tulee?
b) Tässä tulee juuri ongelmaksi ymmärtäminen noiden loppu ja syote pointterialustusten kanssa, että missä kohtaa ne liitetään juuri tuohon main-funktiossa syöteparametrina annettaviin char[] -taulukkoon, joka sisältää käyttäjän syötteet? Ehkä en ymmärrä juuri siitä syystä, kun en handlaa vielä noita pointtereita.
Tämän päivän aikana tullut tehtyä havaintoja, ja opittua monta asiaa, ehkä tietämättäänkin alunperin ongelmasta, joka tuli itselläni vastaan tuossa kertoma-ohjelmassa. Tuokin kirjareferenssi "Unix Hater’s Handbook", jonka SuperOscar esitti, niin oli uusi kirjanimike itselleni, ei ole koskaan tullut missään kirjastossa vastaan, ja oman oppimisprosessin kautta olin tehnyt saman havainnon tuosta atoi-funktion käytöstä. Varmaan kirjaa voisi selata, jos jostain yrittäisi löytää, jos tulisi eteen muita vastaavia ongelmia C-kieleen liittyen, että ei tarvitsisi kaikkea learn-by-doing -menetelmällä päätellä itse nollasta.
Tuossakin strrol -metodin esimerkki-esityksessäsi "nm" on aika paljon koodirivejä tuohon syötteen virhetarkistukseen käytetty, vähemmällä koodauksella selvisi, jos kirjoittaisi metodin, jossa hyödyntää ctype.h -kirjaston isdigit() -funktiota, ja vaikka ohjelmoisi sen omaan kirjastoonsa, jonka sitten sisällyttäisi ohjelmaan, jos olisi jokin käytännön tarve todella vaikka kertoman laskemiselle käyttäjän syötteestä parametrilla. Tässä minun ohjelmatapauksessani en näe mitään käytännön sovellutusta tälle, niin siinäkin mielessä tuo virheiden tarkistus vain on tällainen nyanssi valmiimman tai teollisuuskäyttöisemmän koodin aikaansaamiseksi, ja siitä ponnahti tai pulpahti esiin tuo tietotyypin tarkistusongelma mielessäni.
Varmaan noita parametrisyötteitä ja merkkijono-syötteitä käsitteleviä kirjastoja on tässä 1970-luvulta lähtien maailmalle aika paljonkin julkaistu, ja tuo strrol on ja yksi, jossa on otettu kantaa tuohon syötteen oikeellisuuden tarkistukseen, mutta ajankuluksi jos haluaa merkkijono-kirjastoa alkaa ohjelmoimaan, niin sen voisi aloittaa vaikka tällä metodilla, mikä tarkistaa syötteen olevan positiivinen kokonaisluku, mutta juuri tuo nm:n esitys lienee ihan järkevä, jolla ohjelmasta saa "täydellisen". Kuten "nm" -totesit, kehittynyt taatusti 50 vuoden ajanjakson kuluessa nuo C-kirjastot paljonkin, en epäile sitä yhtään.
En noista GOTO -lausekeskusteluista muuta tiedä, että mielestäni suoria hyppylauseita tulisi välttää, jos kieli niitä tarjoaisi, nykyaikaisissa kielissä ei taida juuri niitä enää ollakaan, ehkä jäänteenä voi josain Visual Basicissa ollakin, ja sitäkin vielä käytetään ja ohjelmistokehitäjiä on, jotka ylläpitävät vielä kielillä ohjelmia, joissa niitä käytetään.
Oma hyppylause mielipiteeni perustui tosiaan siihen, että kun hyppylauseen seuraava suoritettava koodilause, tai lauseke on edessä, hyppylauseen suorituksen jälkeen muuttujien arvot eivät siirry mukana, vaan tosiaan muuttujien arvot voivat olla mitä tahansa, joka mahdollisesti aiheuttaa koko ohjelman kaatumisen jossain vaiheessa pahimmillaan, tai sen suoritus muuttuu epämääräiseksi tai vaikeaksi hallinnoida ja riskit kasvavat sitä mukaa, mitä laajemmasta ohjelmistosta on kyse. Kuten "Ganymedes" totesit, puhutaan varmaan eri tavalla käsittäen nuo hyppylauseet, uskon sinua, että jossain voi muuttujienkin arvot siirtyä joissain kielissä.