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