Tässä artikkelissa selitämme, mitkä merkkijonot ovat C:ssä, miten ne ilmoitetaan ja kuinka ne toteutetaan C-ohjelmoinnissa.
Mitä merkkijonot ovat C-ohjelmointissa?
Merkkijonot ovat yksiulotteisia taulukoita, jotka päättyvät tyhjä \0 merkki. Niitä käytetään merkkien ja tekstien tallentamiseen, ja jokainen merkkijonon merkki vie yhden tavun muistista. Toisin kuin muissa ohjelmointikielissä, C:llä ei ole tietotyypin nimeä merkkijonona, sen sijaan tallennat tiedot char tyyppi.
Kuinka ilmoittaa merkkijonot C-ohjelmoinnissa?
C-ohjelmoinnissa voit ilmoittaa merkkijonon seuraavilla tavoilla:
Voit määrittää merkkijonon ennalta määritetyn koon kanssa. Esimerkiksi merkkijono, jonka enimmäiskoko on 8 merkkiä, tulee ilmoittaa seuraavasti:
hiiltyä testata [ 8 ] = 'Tervetuloa' ;
Toinen tapa määrittää merkkijono C:ssä on määrittää taulukon kokoa:
hiiltyä testata [ ] = 'Tervetuloa' ;
Voit myös määrittää merkkijonon käyttämällä määritellyn kokoista merkkijonoa:
hiiltyä testata [ 8 ] = { 'SISÄÄN' , 'Se on' , 'min' , 'c' , 'o' , 'min' , 'Se on' , ' \0 ' } ;Tai voit määrittää merkkijonon merkkijonoon alustamalla sen merkki kerrallaan ilman määritettyä kokoa:
hiiltyä testata [ ] = { 'SISÄÄN' , 'Se on' , 'min' , 'c' , 'o' , 'min' , 'Se on' , ' \0 ' } ;
The tyhjä merkki '\0' edustaa merkkijonon loppua. Merkkijonon lopun määrittämiseksi on tärkeää lisätä tyhjä merkki jokaisen merkin loppuun.
Yllä olevan merkkijonon muistiesitys on seuraava:
Indeksi | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Muuttuva | SISÄÄN | se on | l | c | O | m | se on | \0 |
C:ssä nolla-merkkiä käytetään määrittämään, mihin merkkijono päättyy. Jos nolla-merkkiä ei ole, nämä toiminnot jatkavat muistin käsittelyä merkkijonon lopun jälkeen, mikä saattaa johtaa koodin odottamattomaan toimintaan.
Seuraavassa on täydellinen C-ohjelmointikoodi merkkijonon tulostamiseen.
#includeint pää ( ) {
hiiltyä testata [ 8 ] = { 'SISÄÄN' , 'Se on' , 'min' , 'c' , 'o' , 'min' , 'Se on' , ' \0 ' } ;
printf ( 'Tuloste on: %s \n ' , testata ) ;
palata 0 ;
}
Yllä oleva ohjelma ilmoittaa merkkijonotestin, jonka koko on 8, ja alustaa sen merkeillä 'Tervetuloa' , ja '\0' . Sitten se käyttää printf() toiminto tulostaa testiin tallennetun merkkijonon.
Lähtö
Ota merkkijonon syöttö käyttäjältä C-ohjelmoinnissa
Voit myös ottaa syötemerkkijonon käyttäjältä käyttämällä scanf() funktio ja sitä varten sinun on määritettävä merkkijonotaulukon koko. Seuraavassa on esimerkkikoodi syötteen vastaanottamiseksi käyttäjältä:
#includeint pää ( )
{
hiiltyä nimi [ 10 ] ;
printf ( 'Anna nimi:' ) ;
scanf ( '%s' , nimi ) ;
printf ( 'Syötetty nimi on: %s.' , nimi ) ;
palata 0 ;
}
Yllä oleva ohjelma kehottaa käyttäjää antamaan nimen, lukee sen käyttäjältä scanf()-funktiolla ja tallentaa sen merkkijonon nimeen. Sen jälkeen se tulostaa syötetyn nimen printf()-funktiolla.
Lähtö
Lue merkkijono tai tekstirivi C-ohjelmoinnissa
Voit käyttää fgets() funktio lukemaan merkkijonoja, koska sitä käytetään tekstirivin lukemiseen määritetystä syöttövirrasta ja tallentamisesta merkkijonoon. Alla oleva koodi on esimerkki tällaisesta tapauksesta:
#includeint pää ( ) {
hiiltyä linja [ viisikymmentä ] ;
printf ( 'Anna tekstirivi:' ) ;
fgets ( linja , koko ( linja ) , stdin ) ;
printf ( 'Kirjoitit: %s' , linja ) ;
palata 0 ;
}
Yllä oleva C-ohjelma käyttää fgets() toiminto, joka lukee käyttäjän syöttämän tekstirivin vakiosyötteestä ja tallentaa sen merkkijonoon, jonka nimi on rivi. Sitten se tulostaa syötetyn tekstirivin printf()-funktiolla.
Lähtö
Yleisesti käytetyt merkkijonofunktiot
C-ohjelmoinnin merkkijonot tukevat erilaisia toimintoja, joita voidaan käyttää ohjelmissa eri toimien suorittamiseen. Jotkut C:n merkkijonon tukemista toiminnoista on mainittu alla:
Toiminnon nimi | Toiminnan tarkoitus |
strcat(a1,a2); | Lisää merkkijonon a2 sisällön merkkijonon a1 loppuun. Toimenpiteen jälkeen tuloksena oleva merkkijono tallennetaan a1:een. |
strcpy(a1,a2); | Tämä toiminto kopioi merkkijonon a2 sisällön merkkijonoon a1. Toiminnon jälkeen a1 sisältää tarkan kopion a2:sta, mukaan lukien päättävän nollamerkin. |
strlen(a1); | Palauttaa merkkijonon a1 pituuden eli merkkijonon merkkien kokonaismäärän ennen viimeistä lopetusmerkkiä tai tyhjää merkkiä. |
strchr(a1,ch1); | Tämä toiminto siirtää osoittimen merkin ch1 ensimmäiseen esiintymiseen merkkijonossa a1. Tämä funktio palauttaa nollaosoittimen, jos ch1 ei löydy merkkijonosta a1. |
Huomautus: C tarjoaa vakiokirjaston nimeltä
Johtopäätös
Merkkijono on C-ohjelmien lineaarisen sekvenssin kokoelma. Jokainen merkki tallentaa yhden tavun ja on esitetty lainausmerkeillä. C tarjoaa vakiokirjaston