domenica 20 aprile - 12:59
Google
 
Menù
  Home
  Come nasce IRC-Zone
  Glossario Informatico
  News
  I nostri progetti
  I nostri servizi
  Partners
  Diventa un Partner

IRC
  Cos'è IRC
  Storia di IRC
  Netiquette su IRC
  Emoticons
  Gergo della chat
  Lista Servers
  RFC 1459
  Shell Hosting

mIRC
  Cos'è il mIRC
  FAQ mIRC
  Configurazione mIRC
  Download mIRC
  Novità
  Script Stranieri
  Script Italiani
  MTS
  MTS Engine

mIRC Addon
  mIRC addon Audio
  mIRC addon SMS
  mIRC addon Grafica
  mIRC addon Utility
  mIRC addon Uso Bot

Client IRC
  Client IRC Linux
  Client IRC Mac
  Client IRC Win

XChat
  Cos'è XChat
  XChat per Win
  XChat per Unix

KVirc
  Cos'è KVirc
  FAQ KVirc
  Installazione su Linux
  KVirc Scripting
  KVirc per Mac
  KVirc per Win
  KVirc per Unix
  KVirc addon

Irssi
  Cos'è Irssi
  Download Irssi
  Download Moduli

Eggdrop/Windrop
  Cos'è un Eggdrop
  Download Eggdrop
  Configurazione Eggdrop
  Download Windrop
  Installazione Windrop

Tcl
  Download TCL
  Tutorial TCL scripting
  Documenti/Guide

BNC
  Cos'è un psyBNC
  Download psyBNC
  Configurazione psyBNC
  Download sBNC
  Configurazione sBNC

Linkaci!
footer

Credits
Somerights

footer

Statistiche
Ip: 54.204.103.179
Download: 769546 file
Totale: 1149558 MB

footer

Links amici
MF's IT User Essential Security Center



Basi di C++ - Le Stringhe

Autore: [Papero]Data: 2005-04-20
Modificato: 2007-01-26 Letture: 14048
Torna indietroStampa articoloInvia ad un amico

Lezione 9: Le stringhe

Questa lezione è sulle stringhe. Le stringhe in realtà sono array, ma ci sono alcune funzioni differenti che si usano per le stringhe, come aggiungere ad una stringa, trovare la lunghezza di stringhe e anche di controllare se due stringhe sono uguali. Le stringhe sono fondamentalmente frasi o parole, come "Questa è una stringa".
Le stringhe sono fondamentalmente array di caratteri. Per esempio, per dichiarare una stringa di 50 lettere, potete dire:
char string[50];
Questo dichiarerà una stringa con una lunghezza di 50 caratteri. Non dimenticate che gli array cominciano a 0, non a 1, per quanto riguarda l'indice dei numeri. Inoltre, una stringa finisce con un carattere null, alla lettera un carattere '/0'. Solo, ricordate che alla fine della stringa ci sarà sempre un carattere nullo. E' come un punto alla fine di una frase, non è contato come una lettera, però occupa uno spazio.
A cosa servono le stringhe? Bene, tanto per cominciare, potrebbe srvirvi un nome di persona. Se vi serve, avrete bisogno di una stringa, perché un nome non si adatta a nessuna variabile! Si tratta, comunque, di una serie di caratteri, e così si adatta alla perfezione ad un array di caratteri.
E ora, se vogliamo immettere una stringa? Bene, se provate ad utilizzare cin>>, allora non funzionerà! Esso termina al primo spazio. Comunque, si può usare la funzione gets(char *s);.
Gets è sostanzialmente una funzione che ha legge una stringa e si ferma al primo "a capo", per esempio, quando un utente preme "Invio". Gets si trova in stdio.h. Tutto quello che dovete fare è di mettere il nome dell'array ed esso funzionerà, perché il puntatore char *s è un sistema per dire ad una funzione che state passando un array; sebbene sia un puntatore, è sempre la stringa che state dando. Sostanzialmente, char *s punta a una stringa e si può accedere a questa stringa solo come un array.
Tornerò su questo rapporto definito qui sopra in un'altra lezione, che sarà una lezione più avanzata su puntatori ed array.
Comunque, per ottenere una stringa da un utente, dovete usare gets. Un programma di esempio su ciò può essere:
#include //Per gets
#include //per le altre funzioni input/output
void main()
{
char astring[50]; //Questo dichiara un array di caratteri che
//può essere usato come stringa
cout<<"Inserire una stringa"; //Dovreste conoscerlo!
gets(astring); //L'utente inserirà una stringa (con spazi)
cout<<"hai inserito: "< cout< }

Ok, è abbastanza semplice. E se vogliamo utilizzare una delle eleganti funzioni di string.h?
Bene, string.h include le seguenti funzioni:
=> int strcmp(const char *s1, const char *s2);
strcmp accetta due stringhe. Restituisce un integer. Questo integer può essere:
Negativo se s1 è minore di s2.
Zero se s1 e s2 sono uguali.
Positivo se s1 è maggiore di s2.

Strcmp è case sensitive.

=> int strcmpi(const char *s1, const char *s2);
strcmpi accetta due stringhe. Restituisce un integer. Questo integer può essere:
Negativo se s1 è minore di s2.
Zero se s1 e s2 sono uguali.
Positivo se s1 è maggiore di s2.

Strcmpi non è case sensitive, se le parole sono in lettere maiuscole non ha importanza.

=> char *strcat(char *desc, char *src);
strcat è un'abbreviazione per string concatenate, il cui significato è di aggiungere alla fine, o append.
Fa solo questo, alla fine della prima stringa verrà aggiunta la seconda. Essenzialmente restituisce la stringa concatenata. La prima stringa avrà l'intera stringa aggiunta.

=> char *strupr(char *s);
strupr converte una stringa in maiuscole. Restituisce anche una stringa, che sarà tutta in maiuscole. La stringa di input, se è un array, sarà anche tutta in maiuscole.

=> char *strlwr(char *s);
strlwr converte una stringa in minuscole. Restituisce anche una stringa, che sarà tutta in minuscole. La stringa di input, se è un array, sarà anche tutta in minuscole.

=> size_t strlen(const char *s);
strlen restituisce la lunghezza di una stringa, meno il carattere di chiusura (/0). Non c'è niente di cui preoccuparsi su size_t. Semplicemente utilizzatelo come un integer.

Alcuni argomenti sulle stringhe possono confondere. Per esempio il const char *s. Ricordatevi solo che tutto ciò è essenzialmente una stringa! Non importa ora se il codice sia giusto, importa solo cosa fanno le funzioni.
Ora, un piccolo programma che utilizza molte funzioni sulle stringhe!
#include //Per cout
#include //per molte funzioni sulle stringhe
#include //Per gets
void main()
{
char name[50]; //Dichiara le variabili
char lastname[50]; //Questo potrebbe essere dichiarato nell'ultima
//linea...
cout<<"Inserisci il tuo nome: "; //Dice all'utente cosa fare
gets(name); //Usa gets per inserire stringhe con spazi o solo
//per ricevere stringhe dopo che l'utente
//ha premuto invio
if(!strcmpi("Alexander", name)) //Il ! significa not, strcmpi rstituisce 0
//per stringhe uguali
{ //strcmpi non è case sensitive
cout<<"Anche io mi chiamo così."< }
else
outputting cout<<"Non mi chiamo così."
{
cout<<"Non mi chiamo così."< }
cout<<"Qual è il tuo nome in maiuscole?..."< strupr(name); //strupr converte la stringa in maiuscole
cout< cout<<"Ecco il tuo nome in minuscole..."< strlwr(name); //strlwr converte la stringa in minuscole
cout< cout<<"Il tuo nome è lungo "< //restituisce
//la lunghezza
//della stringa
cout<<"Inserisci il tuo cognome:";
gets(lastname); //lastname è anche una stringa
strcat(name, " "); //vogliamo separare i due nomi
strcat(name, lastname); //Ora li mettiamo insieme con uno spazio in mezzo
cout<<"Il tuo nome completo è "< }


 

Branzilla Contest Redeem

Links utili

Newsletter
Iscriviti
Cancellati

Ci sono 37 iscritti

In rilievo..
  JackSMS v3
  Venom Script Lite

Documenti/Guide
  I Social Network
  Sicurezza in rete
  Cos'è SSL
  FAQ Bot
  Documenti su IRC
  FAQ Ident
  RFC 2810
  RFC 2811
  IRCx RFC

Informatica libera
  Gli Hoaxes
  Hoaxes report
  Documenti vari
  CensorWare
  Windows
  Linux

mIRC Scripting
  Codice ASCII
  Snippet mIRC scripting
  Tutorial mIRC scripting
  Dll per mIRC
  Utilities

IRCd
  Cos'è un IRCd
  Download Unreal
  Download Hybrid 6
  Download Hybrid 7
  Download Ultimate
  Download Bahamut
  Configurazione IRCd

IRC Services
  Cosa sono i Services
  Download Anope
  Download Epona
  Ircservices 5.0
  Ircservices 5.1
  Configurazione Epona
  Configurazione Anope
  Comandi ChanServ
  Comandi NickServ
  Comandi MemoServ

NeoStats
  Cosa sono i NeoStats
  Download NeoStats
  Configurazione NeoStats
  Download Moduli

IPv6
  Cos'è IPv6
  IPv6 su Win2000
  IPv6 su WinXP
  IPv6 su Linux
  IPv6 su mIRC e Xchat

Programmazione
  Tutorial C++
  Tutorial C
  Compilatori C/C++

Altro
  Contatti
  Banners Gallery

RSS Feed




Progetti
Starlight
IRCHippo

Validato CSS
Sito interamente sviluppato in PHP
MySQL
©2004+ IRC-Zone | Webmaster | Sitemap
Created by Cesare 'Kaesar83' Lasorella
Designed by Manuel 'erkokki' Cabras
IRC-Zone non è responsabile del contenuto dei siti linkati
Pagina creata in: 0.102 sec con 27 queries
Spampoison
Sviluppato con Notepad++
website monitoring service