Stringhe in C (con esempi)

In questo tutorial imparerai a conoscere le stringhe nella programmazione C. Imparerai a dichiararli, inizializzarli e usarli per varie operazioni di I / O con l'aiuto di esempi.

Nella programmazione C, una stringa è una sequenza di caratteri terminata con un carattere nullo . Per esempio:

 char c() = "c string"; 

Quando il compilatore incontra una sequenza di caratteri racchiusi tra virgolette doppie, aggiunge un carattere null alla fine per impostazione predefinita.

Come dichiarare una stringa?

Ecco come puoi dichiarare le stringhe:

 char s(5); 

Qui abbiamo dichiarato una stringa di 5 caratteri.

Come inizializzare le stringhe?

È possibile inizializzare le stringhe in diversi modi.

 char c() = "abcd"; char c(50) = "abcd"; char c() = ('a', 'b', 'c', 'd', ''); char c(5) = ('a', 'b', 'c', 'd', ''); 

Facciamo un altro esempio:

 char c(5) = "abcde";

In questo caso, stiamo cercando di assegnare 6 caratteri (l'ultimo carattere è '') a un chararray di 5 caratteri. Questo è un male e non dovresti mai farlo.

Assegnazione di valori alle stringhe

Gli array e le stringhe sono cittadini di seconda classe in C; non supportano l'operatore di assegnazione una volta dichiarato. Per esempio,

 char c(100); c = "C programming"; // Error! array type is not assignable.

Nota: utilizzare invece la funzione strcpy () per copiare la stringa.

Legge la stringa dall'utente

È possibile utilizzare la scanf()funzione per leggere una stringa.

La scanf()funzione legge la sequenza di caratteri fino a quando non incontra uno spazio (spazio, nuova riga, tabulazione, ecc.).

Esempio 1: scanf () per leggere una stringa

 #include int main() ( char name(20); printf("Enter name: "); scanf("%s", name); printf("Your name is %s.", name); return 0; ) 

Produzione

 Inserisci il nome: Dennis Ritchie Il tuo nome è Dennis.

Anche se Dennis Ritchie è stato inserito nel programma precedente, solo "Dennis" è stato memorizzato nella stringa del nome. È perché c'era uno spazio dopo Dennis.

Come leggere una riga di testo?

È possibile utilizzare la fgets()funzione per leggere una riga di stringa. E puoi usare puts()per visualizzare la stringa.

Esempio 2: fgets () e put ()

 #include int main() ( char name(30); printf("Enter name: "); fgets(name, sizeof(name), stdin); // read string printf("Name: "); puts(name); // display string return 0; ) 

Produzione

 Immettere il nome: Tom Hanks Nome: Tom Hanks 

Qui abbiamo usato la fgets()funzione per leggere una stringa dall'utente.

fgets(name, sizeof(name), stdlin); // read string

I sizeof(name)risultati sono 30. Quindi, possiamo prendere un massimo di 30 caratteri come input che è la dimensione della stringa del nome.

Per stampare la stringa, abbiamo usato puts(name);.

Nota: la gets()funzione può anche essere quella di ricevere input dall'utente. Tuttavia, viene rimosso dallo standard C.
È perché gets()ti consente di inserire qualsiasi lunghezza di caratteri. Quindi, potrebbe esserci un overflow del buffer.

Passaggio di stringhe alle funzioni

Le stringhe possono essere passate a una funzione in modo simile agli array. Ulteriori informazioni sul passaggio di array a una funzione.

Esempio 3: passaggio di una stringa a una funzione

 #include void displayString(char str()); int main() ( char str(50); printf("Enter string: "); fgets(str, sizeof(str), stdin); displayString(str); // Passing string to a function. return 0; ) void displayString(char str()) ( printf("String Output: "); puts(str); ) 

Stringhe e puntatori

Simili agli array, i nomi delle stringhe vengono "decaduti" in puntatori. Quindi, puoi usare i puntatori per manipolare gli elementi della stringa. Ti consigliamo di controllare gli array ei puntatori C prima di controllare questo esempio.

Esempio 4: stringhe e puntatori

 #include int main(void) ( char name() = "Harry Potter"; printf("%c", *name); // Output: H printf("%c", *(name+1)); // Output: a printf("%c", *(name+7)); // Output: o char *namePtr; namePtr = name; printf("%c", *namePtr); // Output: H printf("%c", *(namePtr+1)); // Output: a printf("%c", *(namePtr+7)); // Output: o )

Funzioni di stringa comunemente usate

  • strlen () - calcola la lunghezza di una stringa
  • strcpy () - copia una stringa in un'altra
  • strcmp () - confronta due stringhe
  • strcat () - concatena due stringhe

Articoli interessanti...