PDA

Visualizza la versione completa : Stringhe e puntatori in C++


easytechno
29-11-2018, 00:55
Salve, esperti!
Voglio, tramite l'utilizzo di puntatori, stampare solo alcuni caratteri di una stringa (es. voglio stampare solo la prima vocale di una parola).
Ecco, io quando utilizzo i puntatori per stampare il singolo carattere che mi serve, mi da la stampa di quel carattere e successivi fino la fine della stringa.
Come devo fare invece per stampare SOLTANTO quello?

Grazie in anticipo, amici!

oregon
29-11-2018, 02:23
Tu come fai?

easytechno
02-12-2018, 04:31
Ciao, oregon! Io faccio così (es. per la prima vocale incontrata)
Solo che se per esempio metto la stringa PARCO anzichè stamparmi solo la A mi stampa ARCO.



#include <iostream>

using namespace std;

int main(int argc, char** argv) {

int i;
char stringa[30] = "tntonio";
char *puntatore;


for (i=0;i<30;i++) {
if ( (stringa[i] == 'a') || (stringa[i] == 'e') || (stringa[i] == 'i') || (stringa[i] == 'o') || (stringa[i] == 'u') ) {
puntatore = &stringa[i];
cout << "La prima vocale incontrata e' " << *puntatore << " ed il suo indirizzo e' " << puntatore;
break;
}

}

return 0;
}

oregon
02-12-2018, 13:22
La cout deve essere



cout << "La prima vocale incontrata e' " << *puntatore << " ed il suo indirizzo e' " << static_cast<void*>(puntatore);

easytechno
02-12-2018, 21:15
Cioè... oregon... SEI UN GENIO!!
Spettacolare, funziona alla grande! Ti adoro, credimi!! GRAZIEEEE!

Ascolta, non ci sono altri metodi? Dato che il prof. questi argomenti ancora non li ho affrontati, non abbiamo mai fatto nulla con le parentesi angolari (credo siano i template, giusto?).

E cmq... grazie mille ancora! Buona serata!

easytechno
02-12-2018, 21:15
Se magari c'è un altro tipo di casting... più... semplice!

oregon
03-12-2018, 10:44
Non c'è niente di geniale, sono sole le basi del linguaggio che potresti conoscere anche tu ...

In questo caso puoi scrivere semplicemente

(void *)puntatore

easytechno
05-12-2018, 05:06
perfetto, non mi resta che ringraziarti ancora una volta. sei davvero umile quanto bravo.
ascolta, ultimissima cosa... e se volessi stampare il valore null? perchè spesso quando cerco di farlo sembra vada in crash.
perchè mi serve per un esercizio che se non trova un carattere, la funzione mi deve ritornare il puntatore NULL.
...e poi ho finito di scocciarti! :))

oregon
06-12-2018, 17:39
se volessi stampare il valore null? perchè spesso quando cerco di farlo sembra vada in crash.

Ovviamente se tenti di accedere tramite puntatore NULL devi avere un crash.

Non puoi scrivere

*puntatore

se puntatore è NULL.

Il resto della domanda non l'ho compresa pienamente ... se devi restituire un puntatore NULL da una funzione basta scrivere

return NULL;

Loading