Video Lezione n.5 – Le stringhe in C/C++

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