C Starter karakter tömb - a kezdő
Elkezdte írni több „időpont között.” és akkor kap egy nagyon hasznos anyag. Csak egy vágy, hogy programot használja két változatát viszi be a karakter tömb értékek. Az első kiviteli alak a billentyűzet, egy második megvalósítási módja szerint a variábilis. És mindkét változata a bemeneti ugyanabban a programban egyetlen tömbben.
Általában, amikor kijelentik, változó, tömb típusú char. a fordító automatikusan meghatározza a megfelelő hosszúságú használható egy ilyen tömbben. Ebben az esetben, minden, ami a tömbben, mindezt a memóriában marad, és még akkor is ha nem látom, de az egész vonalon eltömődött szemetet információkat. Sok könyvet írtak róla, de ugyanakkor sok figyelmen kívül hagyja a jelentős anyagi amelyek egyértelművé teszik, hogy mi folyik a karakter tömb valójában.
void full_S (char * S. int mérete) // átviteli vonal maga és a mérete
cout <<“S = “ ;
A (int i = 1; i
void main ()
clrscr ();
const maxL = 256; // A méret a tömb
char S [maxL]; // egy tömböt típusú char
full_S (S. maxL); // távvezeték és a mérete az egyetlen karakter kimeneti funkció
getch ();
>
=================================
Elvileg kicsi és egyszerű kódot. Bent a main () függvény kijelenti tömb típusú char. Ha megpróbálja, hogy ezt a tömböt, mint egy húr (cout< Megjelenítheti az aktuális sor a képernyőre írta egy külön funkció full_S. amely foglalkozik egyetlen karakter kimenetre a valós érték az egész sort.
Tehát bárki láthatja a valós helyzetet a munka karakter tömbök. Bár a fordító és megjeleníti egy üres sor, sőt, ez csak egy látszólagos tisztaság, és az egész sort is tele információk szemetet. Nagyon gyakran ez az első hiba okát
Bárki, aki megértette a fenti, lehet, hogy egy szabványos kérdés: „Hogyan lehet megszabadulni a betegség.” A válasz nagyon egyszerű. Használja egy sor tisztítási funkciót, vagy építeni egy kerékpáros, és írhatunk.
C ++ kódot tömb útján történő tisztítással memset
void full_S (char * S. int méret) // függvény karakterenként kijelző a tényleges hossza a húr
cout <<“S = “ ;
A (int i = 1; i
void main ()
clrscr ();
const maxL = 256; // A méret a tömb
char S [maxL]; // egy tömböt típusú char
full_S (S. maxL); // távvezeték és a mérete az egyetlen karakter kimeneti funkció
memset (S. NULL maxL.); // Tisztított húr a szemetet
full_S (S. maxL); // távvezeték és a mérete az egyetlen karakter kimeneti funkció
getch ();
>
=================================
Nézzük a funkció memset könnyű megérteni, mi paramétereknek kell.
memset (tömb. A nulla érték. A dimenziója tömb) kezeljük, mint a nulla szimbólum értékek is használhatók. " de lehet zavaros, ahol a vágás ferde. Írhatsz memset (Array. A dimenzió 0.) De én csak kényelmes NULL. így használtam a NULL kódot
Most könnyen írni egy programot, hogy adjon meg egy karakter tömb a billentyűzet és a rebindings értékeit a programon belül.
C ++ kód olvasása húr a billentyűzeten, és újra ki kell jelölni az érték a karakterlánc konstans
#include
#include
void full_S (char * S. int mérete) // átviteli vonal maga és a mérete
cout <<“S = “ ;
A (int i = 1; i
void main ()
clrscr ();
const maxL = 256; // A méret a tömb
char S [maxL]; // egy tömböt típusú char
full_S (S. maxL); // távvezeték és a mérete az egyetlen karakter kimeneti funkció
memset (S. NULL maxL.); // Tisztított húr a szemetet
full_S (S. maxL); // távvezeték és a mérete az egyetlen karakter kimeneti funkció
cout <
full_S (S. maxL); // karakter tömb nem tartalmazhat törmeléket, megtisztítása volt
memset (S. NULL maxL.); // Mielőtt kényszerítő karakterlánc értékét megtisztítsák az összes
strcpy (S. "1"); // jelölje meg a kívánt értéket vonal
full_S (S. maxL); // Az ellenőrzés azt mutatta, hogy a tömb nem tartalmaz törmeléket
getch ();
>
=================================
Így az, hogy biztosítani kell, hogy ez a sor nem volt, ami nem szükséges. Ahhoz, hogy egy sor karakter / sor kezeltek jobb, majd mielőtt az információt megtisztítja az adatokat egy ilyen tömb információkat minden törmeléket. Írásban extra sorokat tömb tisztító program kódot akkor nagy valószínűséggel nem fogja elrontani, de hogy elkerüljék az esetleges hibákat kell segíteni.
Végtére is, amikor minden ciklusban programozó ügyel arra, hogy az eredetileg cikiusszámláió volt a kiinduló helyzetbe, egy karakter tömb esetén pontosan ugyanaz vonatkozik.