nel c non esiste un dato primario di tipo stringa; queste sono rappresentate con un array...

9
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

Upload: fiammetta-corradi

Post on 01-May-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire

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).

Page 2: Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire

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.

Page 3: Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire

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.

Page 4: Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire

#include "stdio.h"#include <stdlib.h>

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()*/

Page 5: Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire

#include "stdio.h"#include <stdlib.h>

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()*/

Page 6: Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire

#include "stdio.h"#include <stdlib.h>#include <string.h>

/* 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()*/

Page 7: Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire

#include "stdio.h"#include <stdlib.h>#include <string.h>/* 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()*/

Page 8: Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire

/* File: occorrenze.c *//* Legge una stringa ed un carattere, e stampa il numero di occorrenze del carattere nella stringa.*/#include <stdio.h>#define DIM 80#include <stdlib.h>

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");}

Page 9: Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire

#include <stdio.h> #include <string.h> #include <stdlib.h>

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");}