Visualizzazione dei risultati da 1 a 2 su 2

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455

    [C++] Splittare stringa

    Ciao a tutti, devo splittare una stringa in c++.
    Non so perchè ma l'output viene errato, non capisco come ma viene riallocata male la memoria e non so come fare per correggere la riallocazione. (per esempio se su realloc inserisco la memoria di 100 byte allora la stringa viene splittata correttamente)

    altrimenti se prendo per esempio in input

    ciao#pippo#comestai

    l'output sarà:

    ciaopip=|

    come risolvo?

    codice:
    #include <iostream>
    #include <string.h>
    #include <stdlib.h>
    
    
    using namespace std;
    
    
    int main()
    {
        char* a = new char[100];
        cin.getline(a,100);
    
    
        char* b = new char[1];
    
    
        int ind = 0;
        for(int i = 0; i < strlen(a);i++)
        {
            if(*(a+i)!='#')
            {
                b = (char*)realloc(a,(ind+1));
                b[ind] = *(a+i);
                ind++;
            }
        }
        b[ind] = 0;
        cout << b;
        return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non mi pare tu stia usando C++ ...

    Un esempio può essere

    codice:
    	string s = "ciao#pippo#comestai";
    	string delim = "#";
    
    
    	string tok;
    	size_t pos = 0;
    	
    	while ((pos = s.find(delim)) != string::npos) {
    		tok = s.substr(0, pos);
    		cout << tok << endl;
    		s.erase(0, pos + delim.length());
    	}
    	cout << s << endl;
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.