Linguaggio di Programmazione C/C++
In questa lezione, è discusso l’utilizzo delle stringhe nella programmazione in C e C++.
Le stringhe in C sono trattate come sequenze di char dette array di caratteri, e dispongono di numerose funzioni per
Il trattamento delle Stringhe in C e in C++
- Alcune funzioni della libreria string.h per il C;
- La libreria string per il C++
- Approfondimenti pratici sulle stringhe con i cicli
Nella programmazione in C++ che ha introdotto numerose estensioni del linguaggio C, fra cui l’approccio OOP “Object Oriented Programming”, è stata introdotto un nuovo tipo di dato string che in realtà è il rappresentante di una classe dedicata alla gestione delle stringhe.
Giusto per citare un esempio nel linguaggio C per confrontare due stringhe e determinare quali delle due è precedente o successiva o se sono uguali è opportuno utilizzare la funzione “strcmp”.
Nel linguaggio C++ è possibile utilizzare con il nuovo tipo string l’operatore di confronto “>,<,==,!=” per determinare le relazioni che intercorrono fra due stringhe.
In questo video ti spiego quindi queste ed altre caratteristiche delle stringhe con numerosi esempi.
Codice C del secondo esempio del Video
// Codice C del secondo esempio
#include <stdio.h>
#include <string.h>
#include <ctype.h>
char nome[20];
char primo[20];
char ultimo[20];
int n,k,z;
int main ()
{
printf("\n Questo programma stampa il nome che viene per ultimo e per primo\n");
printf("di un elenco di nomi\n Digita il numero delle persone\n");
scanf("%d",&n);
printf("\n Inserisci il nome di una persona\n");
getchar();
gets(nome);
k=0;
while (nome[k])
{
toupper(nome[k]);
k++;
}
strcpy(primo,nome);
strcpy(ultimo,nome);
for (z=0;z<n-1;z++)
{
printf("\n Inserisci il nome di una persona\n");
gets(nome);
while (nome[k])
{
toupper(nome[k]);
k++;
}
if (strcmp(nome,primo)<=0)
strcpy(primo,nome);
if (strcmp(nome,ultimo)>0)
strcpy(ultimo,nome);
}
printf("\n il primo nome dell'elenco è %s",primo);
printf("\n l'ultimo nome dell'elenco è %s",ultimo);
return 0;
}
// Codice C++ dello stesso esercizio proposto
#include <iostream>
#include <string.h>
#include <ctype.h>
using namespace std;
int main ()
{
char nome[20];
char primo[20];
char ultimo[20];
int n,k,z;
cout << "\n Questo programma stampa il nome che viene per ultimo e per primo\n";
cout <<"di un elenco di nomi\n Digita il numero delle persone\n";
cin >> n;
cout<<"\n Inserisci il nome di una persona\n";
getchar();
cin.getline(nome,20);
k=0;
while (nome[k])
{
toupper(nome[k]);
k++;
}
strcpy(primo,nome);
strcpy(ultimo,nome);
for (z=0;z<n-1;z++)
{
cout <<"\n Inserisci il nome di una persona\n";
cin.getline(nome,20);
while (nome[k])
{
toupper(nome[k]);
k++;
}
if (strcmp(nome,primo)<=0)
strcpy(primo,nome);
if (strcmp(nome,ultimo)>0)
strcpy(ultimo,nome);
}
cout <<"\n il primo nome dell'elenco è :"<<primo;
cout <<"\n l'ultimo nome dell'elenco è :"<<ultimo;
return 0;
}