Oppure

Loading
07/05/07 18:38
Vi posto il mio codice forse c'era qualche altro modo, ma io avevo pensato a questo ma nn funziona:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

int main()
{
char str[80];
int i;
int len;
cout << "Scrivi una frase\n";
 gets(str);
  len= strlen(str);
  for(i=0;i<len;i++)
{
      if(str[i] == ' ') {// Se trova un carattere vuoto lo dovrebbe sostituire con quello contenuto nell'indice successivo
        for(int x=0; x<len; x++) {
        str[i] = str[i+1];
        cout << i;
       }
}
}
 cout << str << "\n";
return 0;
}


EDIT: Nell'if e nell'assegnazione dopo il secondo ciclo for, l'indice di str è "[i]", ma nel code nn lo fa comparire
Ultima modifica effettuata da 07/05/07 19:08
07/05/07 19:29
cH!cus
Ecco il codice:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

int main() {
    char str[80];
    int i, x;
    int len;
    cout << "Scrivi una frase\n";
    gets(str);
    len= strlen(str);
    
    for(i=0;i<len;i++) {
                       if(str[i] == ' ') {
                                 
                                 for(x=i; x<len; x++) {
                                         str[x] = str[x+1];
                                 }
                       }
                       x = 0;
    }
    cout << str << endl;
    cin >> i;
    return 0;
}


compilato con devcpp, a me non da errori. ciao! ;)
aaa
07/05/07 19:45
Siamo arrivati a questo:
#include <iostream>
#include <cstdio>
#include <cctype>
#include <cstring>
using namespace std;

int main() {
char str[80];
int i, x;
int len;
cout << "Scrivi una frase\n";
gets(str);
len= strlen(str);

for(i=0;i<len;i++) {
if(isspace(str[i])) {

for(x=i; x<len; x++) {
str[x] = str[x+1];
}
}
x = 0;
}
cout << str << endl;
cin >> i;
return 0;
} 


Ma se ci sono + spazi di seguito nn li toglie tutti.
07/05/07 20:43
vbdummy
Ma hai provato ad usare "trim" per eliminare gli spazi ? In pratica fa quello che tu stai cercando di fare
aaa
07/05/07 22:47
cH!cus
Ho trovato questa funzione per la rete:

char *str_trim(char *stringa)
{
char *attuale, *in_no_b;
 
for (attuale = in_no_b = stringa; *attuale != 'Ho trovato questa funzione per la rete:


char *str_trim(char *stringa)
{
char *attuale, *in_no_b;
 
for (attuale = in_no_b = stringa; *attuale != '{parsed_message}'; ++attuale)
  if (*attuale != ' ' && *attuale != '\t')
    *(in_no_b++) = *attuale;
*in_no_b = '{parsed_message}';
 
return(stringa);
}


dovrebbe fare a caso tuo. ciao! ;)'; ++attuale) if (*attuale != ' ' && *attuale != '\t') *(in_no_b++) = *attuale; *in_no_b = 'Ho trovato questa funzione per la rete:

char *str_trim(char *stringa)
{
char *attuale, *in_no_b;
 
for (attuale = in_no_b = stringa; *attuale != '{parsed_message}'; ++attuale)
  if (*attuale != ' ' && *attuale != '\t')
    *(in_no_b++) = *attuale;
*in_no_b = '{parsed_message}';
 
return(stringa);
}


dovrebbe fare a caso tuo. ciao! ;)'; return(stringa); }


dovrebbe fare a caso tuo. ciao! ;)
aaa
08/05/07 18:43
Si ok ora il programma funziona alla perfezione, ma chi mi puo spiegare questa funzione trimm?