Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Cerco funzione di output che...

    Salve
    volevo sapere se esiste una funzione c++ che data una stringa
    ne stampa a video solo una parte desiderata di questa


    ad esempio ho la stringa memorizzata

    char nome[20];


    che contiene la parola : "Ciao come stai,io sto bene"

    e voglio stampare solo il "come stai"

    vi ringrazio.

  2. #2
    Utente di HTML.it L'avatar di DydBoy
    Registrato dal
    Jul 2005
    Messaggi
    165
    Puoi usare la strtok con il delimitatore a ","

    Dai un occhiata qui : http://www.cplusplus.com/ref/cstring/strtok.html

  3. #3
    grazie, cmq non credo sia quello che mi serva
    perchè l'esempio fatto da me prima era un caso
    Io devo trattare stringhe che a priori non conosco


    l'ideale sarebbe trovare una funzione che riceve come parametro la stringa

    nome


    e a cui dico

    inizia a stampare da nome+5 fino a nome +20


    (5 e 20 sono solo per esempio)

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Funzione di output

    Originariamente inviato da pablo1986
    Salve
    volevo sapere se esiste una funzione c++ che data una stringa
    ne stampa a video solo una parte desiderata di questa


    ad esempio ho la stringa memorizzata

    char nome[20];


    che contiene la parola : "Ciao come stai,io sto bene"

    e voglio stampare solo il "come stai"
    Esempio:
    codice:
    char nome[30] = "Ciao come stai,io sto bene";
    
    cout << string (nome).substr (5, 9);
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    intuisco che possa essere la soluzione esatta solo che provandola non riesco ad utilizzarla
    cosa dimenticao?
    Questo è il codice, alla riga 11 da errore

    #include<iostream.h> //gestionde delle uscite e degli ingressi
    #include<conio.h> //per la funzione getch()
    #include<stdlib.h> //libreria per pulire lo schermo
    #include<fstream.h> //per la gestione dei file
    #include<string.h>
    #include<iomanip.h> //per la formattazione del testo
    #include<time.h> //libreria per la definizione della data e dell'ora
    int main(){
    char nome[40];
    strcpy(nome,"Ciao come stai,io sto bene");
    cout<<string(nome).substr(5,9);
    getch();
    return 0;
    }

  6. #6
    per la rete ho trovato un esempio simile
    che è questo


    #include <iostream>
    #include <string>
    using namespace std;
    int main() {
    string s = "abcdefgh";
    cout << s.substr(3, 2) << ","
    << s.substr(3) << ","
    << s.substr() << ","
    << s.substr(0, 3) << ".";
    }



    e viene giustamente compilato

    solo che se provo a metter ela classica getch()
    con
    include<conio.h>
    non va


    non esiste una funzione analoga in c?
    purtroppo ho fatto un progetto abbastanza complesso e ho utilizzato più volte getch(),non posso rinunciarci

  7. #7
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    in C puro non esiste una funzione che ti stampa una sottostringa. devi prima crearti la sottostringa e poi stamparla.
    Ad es:

    codice:
    int inizio, lunghezza;
    char stringa[50]="Ciao come stai? io sto bene.";
    char subs[50];
    
    inizio=5;
    lunghezza=9;
    
    strncpy(subs,stringa+inizio,lunghezza);
    subs[lunghezza]=0;
    
    printf ("%s\n", stringa);
    printf ("%s\n", subs);
    la funzione strncpy(dest, src, len) copia i primi len elementi di src in dest.
    strncpy NON aggiunge il terminatore null a fine stringa per cui devi farlo manualmente.
    Fornendo come src un valore stringa+inizio mi posiziono nel punto voluto.

    Il codice stampa
    come stai
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  8. #8
    Originariamente inviato da Habanero
    in C puro non esiste una funzione che ti stampa una sottostringa. devi prima crearti la sottostringa e poi stamparla.
    Ad es:

    codice:
    int inizio, lunghezza;
    char stringa[50]="Ciao come stai? io sto bene.";
    char subs[50];
    
    inizio=5;
    lunghezza=9;
    
    strncpy(subs,stringa+inizio,lunghezza);
    subs[lunghezza]=0;
    
    printf ("%s\n", stringa);
    printf ("%s\n", subs);
    la funzione strncpy(dest, src, len) copia i primi len elementi di src in dest.
    strncpy NON aggiunge il terminatore null a fine stringa per cui devi farlo manualmente.
    Fornendo come src un valore stringa+inizio mi posizione nel punto voluto.

    Il codice stampa
    come stai


    si avevo pensato anche io una cosa del genere ma il mio obiettivo è (ormai mi sa che devo dire ERA) di utilizzare una funzione già pronta dato che il codice in cui dovrei inserire quella (ssepuur piccola) serie di istruzioni è molto lungo.

    A questo punto almeno per sfizio vorrei sapere se qualcuno mi spiega come mai il codice postato da me prima non funziona e capire come mai la funzione conio non viene riconosciuta.

  9. #9
    Scrivi una funzione di questo genere:
    codice:
    char * substr(const char * instring, unsigned int strbegin, unsigned int strend, char * buffer, size_t bufsize)
    {
    /*Verifica degli argomenti*/
    if (strend<strbegin) return 0;
    if (bufsize<strend-strbegin+1) return 0; /* buffer troppo piccolo */
    strncpy(buffer,instring+strbegin,strend-strbegin);
    buffer+(strend-strbegin)=0;
    return buffer;
    }
    ATTENZIONE: non ho collaudato questa funzione (è stata scritta di getto sul momento).
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.