Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire una stringa formata da non più di quindici caratteri si deve effettuare la seguente dichiarazione: char nome[16]; come si vede è stato necessario riservare 16 posti di tipo char e non 15, perché una stringa deve sempre terminare in C col carattere terminatore nul (in C tale carattere può essere anche indicato con \0).
Per introdurre stringhe da tastiera nel C sono utilizzate due funzioni facenti parte della libreria propria del linguaggio: scanf() e gets(). Con queste funzioni il carattere terminatore viene automaticamente posizionato al termine della stringa; tuttavia nella dichiarazione esso deve essere preso in considerazione come se fosse un elemento della stringa.
Osservazioni: · Nella funzione strcpy() nella dichiarazione di string1 questa deve essere almeno lunga come string2. · Nella funzione strcat() nella dichiarazione di string1 quest'ultima deve essere lunga in modo da poter contenere anche string2.
#include "stdio.h" #include main() { char string1[21], string2[11]; printf("INTRODUCI UNA STRINGA DI LUNG. MAX. 20 CARATTERI "); gets(string1); printf("INTRODUCI UNA STRINGA DI LUNG. MAX. 10 CARATTERI "); gets(string2); printf("\n LE STRINGHE INTRODOTTE SONO :\n %s \n %s\n",string1,string2); system("pause"); } /*fine main()*/
#include "stdio.h" #include main() { char string1[21], string2[11]; printf("INTRODUCI UNA STRINGA DI LUNG. MAX. 20 CARATTERI "); scanf ("%s",string1); printf("INTRODUCI UNA STRINGA DI LUNG. MAX. 10 CARATTERI "); scanf ("%s",string2); printf("\n LE STRINGHE INTRODOTTE SONO :\n %s \n %s\n",string1,string2); system("pause"); } /*fine main()*/
#include "stdio.h" #include /* Lunghezza di una Stringa */ main() { char string1[21]; printf("INTRODUCI UNA STRINGA DI LUNG. MAX. 20 CARATTERI "); scanf ("%s",string1); printf("\n LA STRINGA INTRODOTTEA E' LUNGA :\n %lu ",strlen(string1)); system("pause"); } /*fine main()*/
#include "stdio.h" #include /* Confronto tra stringhe */ main() { char string1[21], string2[11]; printf("INTRODUCI UNA STRINGA DI LUNG. MAX. 20 CARATTERI "); gets(string1); printf("INTRODUCI UNA STRINGA DI LUNG. MAX. 10 CARATTERI "); gets(string2); if (strcmp(string1,string2)==0) printf("Le stringhe sono uguali"); else printf("Le stringhe non sono uguali"); system("pause"); } /*fine main()*/
/* File: occorrenze.c */ /* Legge una stringa ed un carattere, e stampa il numero di occorrenze del carattere nella stringa.*/ #include #define DIM 80 #include int main() { char testo[DIM]; char carattere; int occorrenze; int i; /* leggi stringa */ printf("Inserisci una stringa:\n"); scanf("%s", testo); getchar(); /* legge il carattere */ printf("Inserisci un carattere:\n"); scanf("%c", &carattere); occorrenze = 0; /* legge tutti i caratteri della stringa. Se il carattere i-esimo corrisponde al carattere letto allora la variabile 'occorrenze' viene incrementata di uno */ for (i = 0; testo[i] != '\0'; i++) { if (testo[i] == carattere) occorrenze++; } printf("Il numero di occorrenze del carattere %c nella stringa e' %d\n", carattere, occorrenze); system("pause"); }
#include main() { char s[100]; int i, flag; i = 0; printf("Inserisci la stringa "); scanf ("%s", s); flag = 1; while ((i < (strlen(s)/2)) && (flag == 1)) { if (s[i] != s[strlen(s)-i-1]) { flag = 0; } i++; } if (flag == 1) { printf ("La parola e' palindroma.\n"); } else { printf ("La parola non e' palindroma.\n"); } system("pause"); }