Uso di strlen()
Fa parte della sezione Logica e flusso del percorso C di Coddy. Lezione 15 di 63.
Hai imparato a leggere le stringhe dall'input dell'utente, ma ora ti serve un modo per determinare quanto sono lunghe. C fornisce la funzione strlen() della libreria <string.h> proprio a questo scopo.
La funzione strlen() conta il numero di caratteri in una stringa, fermandosi quando raggiunge il terminatore nullo \0. È importante notare che non include il terminatore nullo nel conteggio: conta solo i caratteri effettivamente visibili.
#include <stdio.h>
#include <string.h>
char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length); // Stampa: Length: 5Per usare strlen(), devi includere l’header <string.h> all’inizio del programma. La funzione accetta una stringa come argomento e restituisce un intero che rappresenta il numero di caratteri prima del terminatore nullo.
Questa funzione è particolarmente utile quando devi sapere quanto spazio occupa una stringa, convalidare la lunghezza dell'input o eseguire operazioni che dipendono dalle dimensioni della stringa. È una delle funzioni per stringhe più utilizzate nella programmazione in C.
Sfida
FacileScrivi un programma in C che legga più parole dall'input e ne analizzi le lunghezze usando la funzione strlen(). Il tuo programma deve:
- Leggere un intero
nche rappresenta il numero di parole da elaborare - Per ciascuna delle
nparole:- Dichiarare un array di caratteri con 50 elementi per memorizzare la parola
- Leggere la parola usando
scanf - Usare
strlen()per calcolare la lunghezza della parola - Stampare la parola e la sua lunghezza nel formato specificato
- Dopo aver elaborato tutte le parole, calcolare e stampare il numero totale di caratteri di tutte le parole
- Trovare e stampare la lunghezza della parola più lunga incontrata
Ricorda di includere l'header <string.h> per usare la funzione strlen().
L'output deve mostrare i risultati nel seguente formato:
Word: [word] - Length: [length]
Word: [word] - Length: [length]
...
Total characters: [total]
Longest word length: [max_length]Per esempio, se l'input è:
3
hello
programming
CL'output deve essere:
Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11Questa sfida verifica la tua comprensione di come usare strlen() per misurare la lunghezza delle stringhe, elaborare più stringhe con i cicli ed eseguire calcoli basati sui dati relativi alla lunghezza delle stringhe.
Provalo tu
#include <stdio.h>
#include <string.h>
int main() {
// Leggi il numero di parole
int n;
scanf("%d", &n);
// Variabili per tenere traccia dei totali
int total_characters = 0;
int max_length = 0;
// TODO: Scrivi qui il tuo codice
// Elabora ogni parola usando un ciclo
// Per ogni parola:
// - Dichiara un array di caratteri con 50 elementi
// - Leggi la parola usando scanf
// - Calcola la lunghezza usando strlen()
// - Stampa la parola e la sua lunghezza
// - Aggiorna total_characters e max_length
// Stampa i risultati finali
printf("Total characters: %d\n", total_characters);
printf("Longest word length: %d\n", max_length);
return 0;
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Fondamenti dei puntatori
Che cos’è un puntatore?Dichiarare i puntatoriL’operatore di indirizzo (&)L’operatore di dereferenziazione (*)Puntatori NULLRiepilogo: nozioni di base sui puntatori4Progetto: Utility di testo semplice
Panoramica del progettoConteggio dei caratteri2Puntatori e array
I nomi degli array come puntatoriElementi degli array e puntatoriAritmetica dei puntatoriConfrontare i puntatoriRiepilogo: attraversamento di un array con i puntatori5Puntatori e funzioni
Passaggio per valorePassare puntatori alle funzioniModificare le variabili tramite puntatoriUn esempio classico: scambiare valoriPassare array alle funzioniRiepilogo: argomenti puntatore nelle funzioni3Array di caratteri e stringhe
Stringhe come array di charIl terminatore nullInput di stringhe con scanfUso di strlen()Uso di strcpy()Uso di strcat()Uso di strcmp()Riepilogo: funzioni di base per le stringhe6Gestione della memoria
Memoria Stack vs. HeapAllocazione dinamica - malloc()Usare sizeof() per l'allocazioneVerificare il fallimento dell'allocazioneLiberare la memoria con free()Allocare con calloc()Riepilogo: array dinamico9Progetto: Inserimento semplice di un contatto
Progetto: Definire una struct ContattoFunzione per creare un contattoEsercitati da solo: Compilatore C online