Kuinka lukea merkkijonoa C-kielellä. C-ohjelmointikieli ei tarjoa todellista merkkijonotietotyyppiä. C: ssä merkkijonoa emuloi merkkijono, joka päättyy NULLiin. Tällainen taulukko voidaan ilmoittaa staattisesti tai osoittimena. Standardi C tarjoaa monia toimintoja merkkijonojen tai C-merkkijonojen muokkaamiseen. Tämä artikkeli keskittyy toimintoihin, jotka lukevat syöttövirrasta ja tiedostoista. Seuraa näitä vinkkejä oppiaksesi lukemaan merkkijonoa C-kielellä.
Vaihe 1
Ymmärrä perusasiat. C-merkkijono on taulukkotyyppinen taulukko. Kuten kaikissa C-taulukoissa, ensimmäinen elementti indeksoidaan arvolla 0 ja viimeinen "merkkijonon pituus miinus 1". Yleensä kääntäjä lisää NULL: n viimeiseen paikkaan, joten merkkijono voi sisältää "merkkijonon pituus miinus 1" elementtejä. Null vastaa arvoa 0x00 kokonaislukumuodossa ja \0:aa merkkimuodossa. Elementtejä käyttää "[]"-operaattori. Vaihe 2 havainnollistaa näitä käsitteitä.
Päivän video
Vaihe 2
Lisää alla oleva "include-direktiivi" mihin tahansa lähdetiedostoon ennen tämän opetusohjelman toimintojen käyttöä:
#include < stdio.h >
Vaihe 3
Ilmoita C-merkkijono. Alla oleva koodi näyttää ilmoituksen käyttämällä staattista ja osoitinmenetelmää:
// staattinen ilmoitus char str[50] = {0}; // lyhyt tapa alustaa kaikki elementit arvoon 0 // str[49] on NULL // str: llä on kapasiteettia 48 merkkiä // ilmoitus osoitinmerkillä pStr = NULL; // ei muistivarausta pStr = (char)malloc (50); // tämän tekee "malloc()"
Vaihe 4
Lue tiedot C-merkkijonoon komennolla "scanf()," joka lukee sarjan merkkijonoja, jotka on erotettu välilyönnillä standardista syöttää ja sijoittaa ne sopiviin viitemuuttujiin kuuluviin osoitteisiin "muodon mukaan merkkijono":
int n; printf("Anna etunimesi ja ikäsi: "); scanf("%s%d", str, &n); // printf("Nimesi on %s ja olet %d vanha\n", str, n);
Vaihe 5
Aseta tiedot C-merkkijonoon käyttämällä yksinkertaisempaa "gets()"-funktiota, joka lukee tiedot vakiosyötteestä vain merkkijonoksi:
printf("Anna sukunimi: "); saa (str); printf("Nimesi on %s\n", str);
Vaihe 6
Lue tiedostotiedot C-merkkijonoon komennolla "fscanf()"; tämä funktio on analoginen "scanf()":n kanssa:
FILE* pTiedosto; pTiedosto = fopen("omaTiedosto.txt", "r"); // oletetaan, että tiedosto on olemassa ja siinä on dataa if (NULL != pFile) { fscanf (pFile, "%s", str); printf("Tiedoston ensimmäinen sana on %s\n", str); fclose (pFile); }
Vaihe 7
Toista vaihe 5 käyttämällä "fgets()," -toimintoa, joka toimii samalla tavalla kuin "gets()":
FILE* pTiedosto; pTiedosto = fopen("omaTiedosto.txt", "r"); if (NULL != pTiedosto) { fgets (pFile, str); printf("Tiedoston ensimmäinen sana on %s\n", str); fclose (pFile); }
Asiat, joita tarvitset
C/C++ IDE- tai C-kääntäjä
Kirja C: stä, kuten "The C-ohjelmointikieli" Brian W. Kernighan
Kärki
Saat lisätietoja mainituista toiminnoista vierailemalla C Plus Plus -verkkosivustolla.
Varoitus
Älä yritä kääntää tätä koodia. Sen tarkoitus on vain esitellä toimintoja. Se ei ole yhtenäinen ohjelma ja antaa virheitä käännettäessä.