Stringhe in lingua c

Stringhe in lingua c

Le stringhe sono spesso usate nella lingua C. Attraverso di essi, un programma visualizza i messaggi o i risultati all'utente, inserisce le informazioni nel sistema, genera o consulta le informazioni in database, confronta o cerca parole in un testo, ecc. Sono anche utilizzati per le funzioni per specificare i percorsi del file, selezionare le directory di lavoro, ecc.

In questo articolo di Linux, imparerai tutto sulle stringhe. Spiegheremo da zero cos'è una stringa, quali elementi consiste e come viene creata.

Vedremo anche una sezione speciale che spiega quali sono i personaggi speciali e quale ruolo svolgono i personaggi di controllo in una stringa.

Dopo la spiegazione teorica, vedremo i vari esempi pratici con frammenti di codice e immagini in cui ti insegniamo come creare le stringhe e utilizzare le funzioni di base che la lingua C fornisce per la loro gestione.

Stringhe in lingua c

Una stringa è un pezzo di testo che è costituito da caratteri alfanumerici, simboli e caratteri di controllo. Il compilatore elabora tutto ciò che è racchiuso nelle citazioni come una stringa e pone automaticamente un carattere nullo dopo l'ultimo carattere per indicare la fine.

Successivamente, esaminiamo la catena più nota nella programmazione:

"Ciao mondo"

La lingua C memorizza le stringhe in array di elementi di tipo char o non firmato. Il tipo di dati degli elementi deve essere specificato nella dichiarazione dell'array come mostrato da segue:

char string_1 [20];
CHAR String String_2 [20] non firmato;

In questo caso, l'array String_1 ha 20 elementi di tipo char e l'array String_2 ha 20 elementi di tipo non firmato.

Il tipo di dati degli elementi dell'array determina il set di caratteri che la stringa accetta. Un tipo di dati Char accetta solo un carattere ASCII a 7 bit. Il bit rimanente viene utilizzato come controllo del segno e della parità, quindi solo i caratteri tra 0h00 e 0h80 dalla tabella ASCII possono essere rappresentati in questo tipo di dati.

I caratteri del tipo di char non firmato non usano un bit di segno, quindi i loro 8 bit vengono utilizzati per rappresentare i caratteri tra 0h00 e 0Hff del codice ASCII esteso.

Oltre ai caratteri e ai simboli alfanumerici, una stringa può anche contenere i caratteri di controllo.

Sfuggire e controllare i personaggi nella lingua C

I caratteri di controllo hanno la funzione di eseguire azioni specifiche nella stringa che li contiene. Ad esempio, un personaggio "\ n" prima dell'inizio di una stringa significa che dovrebbe essere scritto su una nuova riga.

#includere
void main ()
printf ("\ nhello world");

Il carattere di fuga alla fine della stringa indica che la stringa deve essere scritta e il cursore viene spostato nella riga successiva.

#includere
void main ()
printf ("Hello world \ n");

Tutte le sequenze di fuga sono costituite da un carattere alfanumerico che è preceduto da una retroscena.

Successivamente, vediamo una tabella dei personaggi di fuga più comunemente usati nella lingua C:

\N Nuova linea
\R Ritorno a carrello
\UN Avviso bip
\T Tabulazione
\ v Tabulazione verticale
\B Backspace
\F Forma di forma

Oltre a questi personaggi di fuga, ci sono sequenze che indicano al compilatore che deve includere determinati simboli nella stringa. Ad esempio, se vogliamo includere un carattere a doppia citazione nel testo, il compilatore lo interpreterebbe come un terminatore della stringa e non come un altro carattere. Per questo motivo, alcuni simboli devono essere preceduti da una retroscena in modo che il compilatore possa inserire. Nel seguente esempio, vediamo cosa sono:

\ " Inserire doppie citazioni
\ ' Inserire singole citazioni
\\ Inserisci retroscena
\? Inserire il punto interrogativo

:

Come creare una stringa nella lingua C

Uno dei modi per dichiarare una stringa è creare una matrice di caratteri di tipo char o un carattere non firmato di una certa dimensione, come segue:

Char Str [50];
STR = "Hello World";

In questo modo, il compilatore tratta i dati memorizzati nell'array come una singola stringa assegnando un carattere nullo alla fine.

Come creare una stringa costante nella lingua C

Per creare una stringa costante, è necessario dichiarare una matrice di caratteri di tipo char o un carattere senza segno senza specificarne le dimensioni. Quindi, assegna la stringa come mostrato nel seguente:

Char Str [] = "Hello World";

Il compilatore mette automaticamente un carattere nullo alla fine della stringa per indicare la sua fine. Con questo tipo di stringa, non è possibile modificare il contenuto.

Come creare un puntatore alla stringa nella lingua C

Un altro modo per archiviare una stringa è dichiarare un puntatore all'array che lo memorizza. Questo metodo alloca dinamicamente la dimensione dell'array di caratteri. Ecco il modo corretto per dichiarare un puntatore di stringhe:

char *s_ptr;
s_ptr = "Hello World";

Il metodo puntatore è il più utilizzato dalle funzioni del linguaggio C per fare riferimento a una stringa nei loro argomenti di input e output.

Funzioni per gestire le corde

Durante la programmazione, è importante memorizzare le funzioni di base per gestire le stringhe perché le usiamo più e più volte. Se li padroneggi, il tuo lavoro andrà molto più velocemente.

Tutte le funzioni per la gestione delle stringhe sono definite nella "stringa.H ”intestazione. Per utilizzarli, è necessario includere questo file nel codice come segue:

#includere

Nella sezione seguente, ti mostreremo brevemente come utilizzare le funzioni di gestione delle stringhe di base nella lingua C.

Come visualizzare una stringa nella lingua C

Il modo più comune per visualizzare una stringa sullo schermo è utilizzare le funzioni printf () o put (), entrambe definite in "stdio.H ”intestazione. Queste funzioni accettano una stringa o un puntatore a una stringa come argomento di input.

Ora, vediamo come una stringa può essere visualizzata sullo schermo usando la funzione printf ():

#includere
void main ()
printf ("Hello World 1 \ n");
char str [15] = "\ nhello World 2 \ n";
printf ("%s", str);

Se si utilizza la funzione printf () e passa un puntatore di stringa come nel secondo caso, è necessario specificare in quale formato dovrebbe essere visualizzato. Dal momento che è una stringa in questo caso, questo formato è specificato con "%s" come primo argomento di input.

Nella figura seguente, è possibile vedere la compilazione e l'esecuzione di questo codice:

Come copiare una stringa in lingua C

Esistono diversi modi per copiare una stringa nella lingua C. Il metodo più comunemente usato è la funzione strcpy () che è definita nella "stringa.H ”intestazione. Nel seguente esempio, esamineremo la sintassi di questa funzione:

strcpy (S1, S2);

La funzione strcpy () copia la stringa "S2" in stringa "S1" e inserisce un carattere nullo alla fine. La stringa "S2" può essere specificata esplicitamente o implicitamente.

Esempio:

Il seguente codice copia la stringa "S2" esplicitamente specificata in stringa "S1" e la visualizza nella console di comando:

#includere
#includere
void main ()

char s1 [20] = "";
strcpy (S1, "\ n \ nhello World \ n \ n");
printf ("%s", s1);

La seguente immagine mostra la compilazione e l'esecuzione di questo codice. In questo caso, strcpy () copia la stringa da "S2" a "S1" e quindi la stampa sullo schermo usando la funzione printf ():

Come concatenare due stringhe nella lingua C

La funzione che il linguaggio C fornisce per concatenare due stringhe è strcat (). Vediamo la sintassi di questa funzione nel seguente:

strcat (S1, S2);

Questa funzione concatena la stringa "S2" nella stringa "S1". Come tutte le funzioni di elaborazione delle stringhe, strcat () colloca un carattere nullo alla fine della stringa concatenata. Sia "S1" che "S2" possono essere specificati esplicitamente o implicitamente.

Esempio:

#includere
#includere
void main ()

char s1 [20] = "\ n \ nhello";
Strcat (S1, "World \ n \ n");
printf ("%s", s1);

La seguente immagine mostra la compilazione e l'esecuzione di questo codice. In questo caso, strcat () concatena la stringa "S2" su "S1" e quindi la stampa sullo schermo usando la funzione printf ():

Come confrontare due stringhe nella lingua C

La funzione che il linguaggio C fornisce per confrontare le stringhe è strcmp (). Vediamo la sintassi di questa funzione nel seguente:

int strcmp (S1, S2);

La funzione strcmp () confronta le stringhe "S1" e "S2". Se sono uguali, restituisce un risultato uguale a 0. Se non sono uguali, restituisce un risultato che non è uguale a 0.


Esempio:

#includere
#includere
void main ()

char s1 [50] = "uguale";
char s2 [50] = "uguale";
char s3 [50] = "non uguale";
//caso 1
if (strcmp (s1, s2) == 0)
printf ("\ n \ ns1 e s2 sono uguali \ n \ n");
altro
printf ("\ n \ ns1 e s2 non sono uguali \ n \ n");
// Caso 2
if (strcmp (s1, s3) == 0)
printf ("\ n \ ns1 e s3 sono uguali \ n \ n");
altro
printf ("\ n \ ns1 e s3 non sono uguali \ n \ n");

Vediamo la compilazione e l'esecuzione di questo codice nella figura seguente. Nel caso 1, "S1" e "S2" sono uguali, quindi strcmp () restituisce 0. Nel caso 2, "S1" e "S3" non sono uguali, quindi il programma entra nel "else" dell'affermazione "if".

Come tagliare una corda in frammenti

La funzione strsep () frammenti la stringa che è indicata da stringp in pezzi, a partire da un delimitatore specificato nel suo argomento di input "delim". Vediamo ora la sintassi di questa funzione:

char *strsep (char ** limitare stringp, const char *limit delim);

Quando Strsep () incontra un delimitatore, lo sostituisce con un carattere nullo che segna la fine del nuovo frammento e imposta il puntatore su Stringp nella posizione successiva. Questa funzione restituisce il puntatore al nuovo frammento su ogni chiamata o un puntatore nullo se non trova più delimitatori.

Esempio:

In questo esempio, frammentamo il "Oggi è un grande giorno per la programmazione" stringa e usa uno spazio come delimitatore in modo che la stringa sia frammentata parola per parola, che emettiamo alla console di comando usando la funzione printf (). La chiamata alla funzione strsep () viene ripetuta tra un po 'di tempo fino a quando non trova più delimitatore e restituisce un puntatore nullo.

#includere
#includere
void main ()

char s_in [50] = "Oggi è un grande giorno per la programmazione";
char* in_ptr = s_in;
char del [4] = "";
char* o_ptr;
while (o_ptr != Null)
o_ptr = strSep (& in_ptr, del);
printf ("%s \ n \ n", o_ptr);

La seguente immagine mostra la compilazione e l'esecuzione di questo codice. Come possiamo vedere, strsep () frammenta la parola String by word e la funzione printf () stampa ogni parola su una nuova riga della console di comando:

Conclusione

In questo articolo di Linux, abbiamo spiegato in cosa consiste una stringa nella lingua C.

Abbiamo imparato quali elementi sono fatti, che tipo di dati usano, come sono codificati e quali caratteri supporta ogni tipo.

Abbiamo anche spiegato i diversi modi per dichiarare gli array o i puntatori per archiviare le corde, nonché le istruzioni per allocarli.

Per aiutarti a ottenere una presa con le stringhe in questo linguaggio, abbiamo usato gli esempi pratici e i frammenti di codice per mostrarti quali sono le stringhe e come utilizzare alcune delle funzioni di elaborazione delle stringhe di base.