Kuinka lukea merkkijonoa C-kielellä

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ä.