Creare utility per i caratteri
Esempi pratici
Creare utility per i caratteri è una lezione C Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C Academy include 4 lezioni in totale.
Combinare ciò che si sa
Ora è possibile creare piccole utilità pratiche per i caratteri combinando l'aritmetica dei char, la libreria ctype e i cicli sulle stringhe.
Scriviamo alcune funzioni di utilità comuni.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char c = 'g';
printf("Upper: %c\n", toupper(c));
return 0;
}Contare le vocali
Un contatore di vocali confronta ogni carattere con l'insieme a, e, i, o, u, in entrambe le maiuscole e minuscole.
#include <stdio.h>
#include <ctype.h>
int count_vowels(const char *s) {
int n = 0;
for (int i = 0; s[i]; i++) {
char c = tolower(s[i]);
if (c=='a'||c=='e'||c=='i'||c=='o'||c=='u') n++;
}
return n;
}
int main(void) {
printf("%d\n", count_vowels("Education"));
return 0;
}Invertire una stringa
Scambi i caratteri delle due estremità procedendo verso il centro per invertire una stringa sul posto.
#include <stdio.h>
#include <string.h>
int main(void) {
char s[] = "hello";
int n = strlen(s);
for (int i = 0; i < n / 2; i++) {
char tmp = s[i];
s[i] = s[n-1-i];
s[n-1-i] = tmp;
}
printf("%s\n", s);
return 0;
}Verificare un palindromo
Un palindromo si legge allo stesso modo in avanti e all'indietro. Confronti le posizioni simmetriche finché non si incontrano.
#include <stdio.h>
#include <string.h>
int is_palindrome(const char *s) {
int i = 0, j = strlen(s) - 1;
while (i < j) {
if (s[i] != s[j]) return 0;
i++; j--;
}
return 1;
}
int main(void) {
printf("%d\n", is_palindrome("level"));
printf("%d\n", is_palindrome("world"));
return 0;
}Invertire maiuscole e minuscole
Una funzione per invertire le maiuscole e le minuscole trasforma le lettere maiuscole in minuscole e viceversa, lasciando invariati i caratteri che non sono lettere.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char s[] = "Hello World";
for (int i = 0; s[i]; i++) {
if (isupper(s[i])) s[i] = tolower(s[i]);
else if (islower(s[i])) s[i] = toupper(s[i]);
}
printf("%s\n", s);
return 0;
}Rimuovere i caratteri non numerici
Mantenga solo i caratteri cifra di una stringa, una tecnica utile per ripulire i numeri di telefono.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char *s = "(555) 123-4567";
for (int i = 0; s[i]; i++) {
if (isdigit((unsigned char)s[i])) putchar(s[i]);
}
putchar('\n');
return 0;
}atoi manuale
Converta una stringa numerica in un intero accumulando ogni cifra: moltiplichi il totale progressivo per 10 e aggiunga il valore della cifra.
#include <stdio.h>
#include <ctype.h>
int my_atoi(const char *s) {
int n = 0;
for (int i = 0; isdigit((unsigned char)s[i]); i++) {
n = n * 10 + (s[i] - '0');
}
return n;
}
int main(void) {
printf("%d\n", my_atoi("427") + 3);
return 0;
}Contare le parole
Conti le parole rilevando i passaggi da uno spazio vuoto a un carattere non vuoto.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char *s = "the quick brown fox";
int words = 0, in_word = 0;
for (int i = 0; s[i]; i++) {
if (isspace((unsigned char)s[i])) in_word = 0;
else if (!in_word) { in_word = 1; words++; }
}
printf("words = %d\n", words);
return 0;
}Scrivere in maiuscolo l'iniziale delle parole
Renda maiuscola la prima lettera di ogni parola convertendo in maiuscolo ogni lettera che segue uno spazio vuoto o che si trova all'inizio della stringa.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char s[] = "hello there friend";
int start = 1;
for (int i = 0; s[i]; i++) {
if (isspace((unsigned char)s[i])) start = 1;
else { if (start) s[i] = toupper(s[i]); start = 0; }
}
printf("%s\n", s);
return 0;
}Un cifrario ROT13
ROT13 sposta ogni lettera di 13 posizioni, ricominciando dall'inizio quando raggiunge la fine dell'alfabeto. Applicarlo due volte ripristina il testo originale.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char s[] = "Hello";
for (int i = 0; s[i]; i++) {
char c = s[i];
if (isupper(c)) s[i] = 'A' + (c - 'A' + 13) % 26;
else if (islower(c)) s[i] = 'a' + (c - 'a' + 13) % 26;
}
printf("%s\n", s);
return 0;
}Frequenza di un carattere
Conti quante volte compare un carattere specifico in una stringa con un semplice ciclo e un confronto.
#include <stdio.h>
int main(void) {
char *s = "mississippi";
char target = 's';
int count = 0;
for (int i = 0; s[i]; i++) {
if (s[i] == target) count++;
}
printf("'%c' appears %d times\n", target, count);
return 0;
}Verifica rapida
Verifichi le proprie capacità di creare utilità per i caratteri.
Riepilogo
Ha creato utilità pratiche per i caratteri:
- Conteggio di vocali, parole e frequenza dei caratteri.
- Inversione di stringhe e verifica dei palindromi.
- Inversione e capitalizzazione di maiuscole e minuscole.
- Implementazione manuale di
atoie di un cifrario ROT13.
Domande Frequenti
La lezione «Creare utility per i caratteri» è gratuita?
Sì — il testo completo di «Creare utility per i caratteri» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C Academy, passa a CoddyKit PRO. Il corso C Academy include 4 lezioni in totale.
Cosa imparerò in «Creare utility per i caratteri»?
Esempi pratici Eserciti C Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C Academy?
Non è richiesta alcuna esperienza precedente. C Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Creare utility per i caratteri»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C Academy?
Sì. Ogni lezione C Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Caratteri come interi
- La libreria ctype
- Leggere i caratteri
- Creare utility per i caratteri