Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Eliminare spazi e tabulazioni presenti al termine di una riga

    Come da titolo,vorrei creare un programma che elimini tutti i caratteri di spaziatura alla fine di una riga.Ne ho scritto uno,però quando lo vado ad eseguire mi segnala che il programma smette di funzionare...

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Magari è meglio di quale linguaggio si parla ...

    E sarebbe ancora meglio che tu postassi il tuo codice così si corregge ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Giusto...ho dimenticato di specificare,parlo della programmazione in C...
    ed ecco il codice:
    codice:
    #include <stdio.h>
    #define MAX 1000 //massima lunghezza di una stringa
    int copy(char to[], char from[]);
    void cstring(int from,char to[]);
    main()
    {
    	char string[MAX];
    	char str[MAX];
    	int i,c,s;
    	c=getchar();
    	cstring(c,str);     /*n=lunghezza della linea;c-string-str=input*/
    	int n;
    	while(c!=EOF)
    	{	
    		n=copy(string,str);
    		for(i=0;i<=n;++i)
    		{
    			if(str[i]!=' ' && str[i]!='\t')
    				printf("%s",str[i]);
    			else if(str[i]==' ' || str[i]=='\t')
    			{
    				s=i;
    				while(i<=n)
    				{
    					++i;
    					if(str[i]!=' '&&str[i]!='\t')
    					{
    						printf("%s",str[s]);
    						i=s++;
    						break;
    					}
    				}
    			}
    		}
    	}
    }
    
    // Trasferisce l'input "da" nell'output "ad"
    void cstring(int da,char ad[])
    {
    	int i;
    	i=0;
    	while ((to[i]=from[i])!='\n')
    		++i;
    }
    // Copia "from" in "to"  e ne calcola la lunghezza
    int copy(char to[], char from[])
    
    {
            int i;
    	for (i=0;;++i)
    		ad[i]=da;
    	return i;
    }

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Scusa ma come funziona?

    Cosa fai con

    c=getchar();

    ?

    La getchar acquisisce un solo carattere da tastiera ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Mi sto rendendo conto ora degli errori...comunque io volevo fare in modo che prendesse un'input,lo trasferisse in un array di char e dall'array farebbe tutte le modifiche

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Per l'input puoi usare tranquillamente scanf/fscanf/fgets.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Non ci avevo pensato...provo subito

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Mi pare che siano le funzioni giuste ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Sono arrivato a questo...
    codice:
    #include <stdio.h>
    #define MAX 1000 //massima lunghezza di una stringa
    int cstring(char from[],char to[]);
    main()
    {
    	char string[MAX];
    	char str[MAX];
    	int i,s;
    	scanf(&string);
    	
    	while(string!=EOF)
    	{	
    		int n=cstring(string,str);
    		for(i=0;i<=n;++i)
    		{
    			if(str[i]!=' ' && str[i]!='\t')
    				printf("%s",str[i]);
    			else if(str[i]==' ' || str[i]=='\t')
    			{
    				s=i;
    				while(i<=n)
    				{
    					++i;
    					if(str[i]!=' '&&str[i]!='\t')
    					{
    						printf("%s",str[s]);
    						i=s++;
    						break;
    					}
    				}
    			}
    		}
    	}
    }
    
    // Trasferisce l'imput "from" nell'output "to" e ne calcola la lunghezza
    int cstring(char from[],char to[])
    {
    	int i;
    	for (i=0;from!='\n';++i)
    		from[i]=to[i];
    	return i;
    }
    Il problema però persiste.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ma tu il codice lo compili e non ci sono errori? Sicuro?

    Come hai usato la scanf ?

    http://www.cplusplus.com/reference/cstdio/scanf/

    Cosa vuol dire quella while usata in quel modo?

    Comunque è meglio che utilizzi la fscanf

    fscanf(string, MAX, stdin);

    per l'input al posto della scanf
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.