🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi lavorare con le stringhe in C

Codegrind TeamJul 22 2023

Ecco degli esercizi semplici con soluzione per praticare le basi su come lavorare con le stringhe in C.

Esercizio 1

Chiedere all'utente di inserire una stringa e calcolarne la lunghezza.
#include <stdio.h>
#include <string.h>

int main() {
    char stringa[100];

    printf("Inserisci una stringa: ");
    scanf("%s", stringa);

    int lunghezza = strlen(stringa);

    printf("La lunghezza della stringa è: %d\n", lunghezza);

    return 0;
}

Esercizio 2

Chiedere all'utente di inserire due stringhe e concatenarle insieme.
#include <stdio.h>
#include <string.h>

int main() {
    char stringa1[100], stringa2[100];

    printf("Inserisci la prima stringa: ");
    scanf("%s", stringa1);

    printf("Inserisci la seconda stringa: ");
    scanf("%s", stringa2);

    strcat(stringa1, stringa2);

    printf("La stringa concatenata è: %s\n", stringa1);

    return 0;
}

Esercizio 3

Chiedere all'utente di inserire una stringa e copiarla in un'altra variabile.
#include <stdio.h>
#include <string.h>

int main() {
    char stringa1[100], stringa2[100];

    printf("Inserisci una stringa: ");
    scanf("%s", stringa1);

    strcpy(stringa2, stringa1);

    printf("La stringa copiata è: %s\n", stringa2);

    return 0;
}

Esercizio 4

Chiedere all'utente di inserire due stringhe e confrontarle per determinare se sono uguali.
#include <stdio.h>
#include <string.h>

int main() {
    char stringa1[100], stringa2[100];

    printf("Inserisci la prima stringa: ");
    scanf("%s", stringa1);

    printf("Inserisci la seconda stringa: ");
    scanf("%s", stringa2);

    int confronto = strcmp(stringa1, stringa2);

    if (confronto == 0) {
        printf("Le stringhe sono uguali.\n");
    } else {
        printf("Le stringhe sono diverse.\n");
    }

    return 0;
}

Esercizio 5

Chiedere all'utente di inserire una stringa e una sottostringa, quindi cercare la sottostringa all'interno della stringa.
#include <stdio.h>
#include <string.h>

int main() {
    char stringa[100], sottostringa[100];

    printf("Inserisci una stringa: ");
    scanf("%s", stringa);

    printf("Inserisci una sottostringa: ");
    scanf("%s", sottostringa);

    char *trovato = strstr(stringa, sottostringa);

    if (trovato != NULL) {
        printf("La sottostringa è presente nella stringa.\n");
    } else {
        printf("La sottostringa non è presente nella stringa.\n");
    }

    return 0;
}

Esercizio 6

Chiedere all'utente di inserire una stringa e convertirla in maiuscolo.
#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main() {
    char stringa[100];

    printf("Inserisci una stringa: ");
    scanf("%s", stringa);

    int lunghezza = strlen(stringa);

    for (int i = 0; i < lunghezza; i++) {
        stringa[i] = toupper(stringa[i]);
    }

    printf("La stringa in maiuscolo è: %s\n", stringa);

    return 0;
}

Esercizio 7

Chiedere all'utente di inserire una stringa e convertirla in minuscolo.
#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main() {
    char stringa[100];

    printf("Inserisci una stringa: ");
    scanf("%s", stringa);

    int lunghezza = strlen(stringa);

    for (int i = 0; i < lunghezza; i++) {
        stringa[i] = tolower(stringa[i]);
    }

    printf("La stringa in minuscolo è: %s\n", stringa);

    return 0;
}

Esercizio 8

Chiedere all'utente di inserire un nome e stampare un messaggio di benvenuto con il nome interpolato.
#include <stdio.h>

int main() {
    char nome[100];

    printf("Inserisci il tuo nome: ");
    scanf("%s", nome);

    printf("Benvenuto, %s!\n", nome);

    return 0;
}

Esercizio 9

Chiedere all'utente di inserire una stringa con spazi bianchi iniziali e/o finali e rimuoverli.
#include <stdio.h>
#include <string.h>

int main() {
    char stringa[100];

    printf("Inserisci una stringa con spazi bianchi iniziali e/o finali: ");
    scanf("%[^\n]s", stringa);

    int lunghezza = strlen(stringa);
    int inizio = 0, fine = lunghezza - 1;

    while (stringa[inizio] == ' ') {
        inizio++;
    }

    while (stringa[fine] == ' ') {
        fine--;
    }

    stringa[fine + 1] = '\0';

    printf("La stringa senza spazi bianchi è: %s\n", stringa + inizio);

    return 0;
}

Esercizio 10

Chiedere all'utente di inserire una stringa contenente parole separate da spazi e dividerla in singoli token.
#include <stdio.h>
#include <string.h>

int main() {
    char stringa[100];

    printf("Inserisci una stringa con parole separate da spazi: ");
    scanf("%[^\n]s", stringa);

    char *token = strtok(stringa, " ");

    while (token != NULL) {
        printf("%s\n", token);
        token = strtok(NULL, " ");
    }

    return 0;
}