A început să scrie mai multe "între cazuri". dar poate fi un material foarte util. Pur și simplu a existat o dorință în program de a utiliza două variante de intrare într-o matrice de valori. Prima opțiune este de la tastatură, a doua opțiune este din variabila. Și ambele variante de intrare într-un program într-o singură matrice.
În general, atunci când declarați o variabilă matrice de tip char. compilatorul determină automat lungimea necesară pentru a lucra cu o astfel de matrice. În acest caz, tot ceea ce este în matrice, toate acestea rămân în memorie și, deși nu vedeți acest lucru, întreaga linie este plină de gunoi de informații. Multe cărți scriu despre asta, dar în același timp, mulți oameni ignoră materialul demonstrativ, ceea ce va clarifica ceea ce se întâmplă în matricea de simboluri.
void full_S (caractere * S. int int) // Transmiterea sirului in sine si a dimensiunii acestuia
cout <<“S = “ ;
pentru (int i = 1; i
void main ()
clrscr ();
const maxL = 256; // Dimensiunea matricei
char S [maxL]; // Declare o matrice de tip char
full_S (S.maxL); // Transmiterea unui șir și a dimensiunii sale unei funcții prin ieșirea de caractere
getch ();
>
=================================
În principiu, un cod mic și simplu. În interiorul funcției principal (), este declarată o matrice de tip char. Dacă încercați să imprimați această matrice ca un șir (cout< Pentru a scoate o linie reală pe ecran, a fost scrisă o funcție separată full_S. care se referă la ieșirea de caractere a valorilor reale ale întregului șir.
Astfel, oricine poate vedea situația reală de a lucra cu o matrice de caractere. Deși compilatorul afișează o linie goală, este pur și simplu o puritate iluzorie, iar întreaga linie poate fi umplută cu gunoi de informații. Foarte des aceasta este prima cauză a erorilor
Oricine înțelege cele de mai sus, se poate ivi o întrebare standard: "Cum să scapi de această tulburare". Răspunsul este foarte simplu. Utilizați funcția de curățare a matricei sau construiți o bicicletă și scrieți-vă propria.
Cod C ++ Ștergerea unui matrice folosind memset
void full_S (char * S. int size) // Funcția de ieșire caracter-cu-caractere a unui șir în lungime reală
cout <<“S = “ ;
pentru (int i = 1; i
void main ()
clrscr ();
const maxL = 256; // Dimensiunea matricei
char S [maxL]; // Declare o matrice de tip char
full_S (S.maxL); // Transmiterea unui șir și a dimensiunii sale unei funcții prin ieșirea de caractere
memset (S. NULL. maxL); // Curățat șirul de gunoi
full_S (S.maxL); // Transmiterea unui șir și a dimensiunii sale unei funcții prin ieșirea de caractere
getch ();
>
=================================
Privind funcția memset este ușor de înțeles ce parametri are nevoie.
memset (dimensiunea matricei: dimensiunea matricei) Când procesați caracterele ca valoare nulă, puteți utiliza ". dar acest lucru poate fi confundat în cazul în care slash-ul este înclinat. Puteți scrie memset (Array 0. Dimension) Dar este doar convenabil pentru mine pentru a specifica NULL. așa că am folosit NULL-ul în cod
Acum, puteți scrie în siguranță un program pentru a introduce o matrice de caractere de la tastatură și a re-atribui valori la ea din cadrul programului.
Cod C ++ Citiți un șir de la tastatură și realocați-l la o valoare constantă a șirului
#include
#include
void full_S (caractere * S. int int) // Transmiterea sirului si dimensiunile sale
cout <<“S = “ ;
pentru (int i = 1; i
void main ()
clrscr ();
const maxL = 256; // Dimensiunea matricei
char S [maxL]; // Declare o matrice de tip char
full_S (S.maxL); // Transmiterea unui șir și a dimensiunii sale unei funcții prin ieșirea de caractere
memset (S. NULL. maxL); // Curățat șirul de gunoi
full_S (S.maxL); // Transmiterea unui șir și a dimensiunii sale unei funcții prin ieșirea de caractere
cout <
full_S (S.maxL); // Matricea de caractere nu conține gunoi, cele de mai sus a fost o curățare
memset (S. NULL.max); // Înainte de redefinirea valorii șirului, o ștergem din toate
strcpy (S. "1"); // Alocați valoarea dorită șirului
full_S (S.maxL); // Verificarea arată că matricea nu conține gunoi
getch ();
>
=================================
Astfel, trebuie să vă asigurați că linia nu are ceea ce nu are nevoie. Pentru ca matricea / șirul de caractere să fie tratată mai bine, înainte de a introduce informațiile acolo, ștergeți datele unui astfel de matrice din orice gunoi de informații. Scrierea de linii inutile de curățare a codului programului de matrice, probabil, nu va strica, dar pentru a evita posibile erori ar trebui să ajute.
La urma urmei, atunci când execută orice ciclu, programatorul are grijă ca inițial contorul de buclă să fie în poziția inițială, matricea de caractere necesită exact aceeași grijă.