Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr sbarca ufficialmente in Italia con tre modelli elettrici premium, X, 7X e 001, distribuiti da Jameel Motors su una rete di 52 punti vendita già attivi. La Zeekr X parte da 39.900 euro, la 7X da 54.100: piattaforma a 800V, chip Snapdragon di ultima generazione, ricarica ultraveloce e un'autonomia dichiarata fino a 615 km WLTP. Le prime consegne sono previste a metà aprile
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-04-2008, 10:29   #1
Lucuzzu
Senior Member
 
L'Avatar di Lucuzzu
 
Iscritto dal: Apr 2006
Città: Roma
Messaggi: 1008
[C]Contare parole in una stringa

ragazzi sono un cane non malmenatemi

Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX 100

main()
{
    int i, spazio;
    char frase[MAX];
    
    printf("Inserire una stringa, le cui parole sono intervallate da spazi: ");
    scanf("%s", frase);
    fflush(stdin);
    
    
    spazio = 0;
    
    for(i=0;i<strlen(frase);i++)
        
        if(frase[i] == ' ')
        spazio++;
        
    
    
    
    if(spazio>0)
        printf("Il numero delle parole presenti nella stringa e': %d\n", spazio+1);
    else
        printf("Non ci sono spazi nella stringa\n");
    
system("pause");
}
come mai non mi funza?ciao!
Lucuzzu è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 10:58   #2
wizard1993
Senior Member
 
L'Avatar di wizard1993
 
Iscritto dal: Apr 2006
Messaggi: 22462
questa libreria funziona molto bene; guardatela
http://www.koders.com/c/fidF4F66D790...EB2D3CE4F.aspx
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza
wizard1993 è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 11:07   #3
Lucuzzu
Senior Member
 
L'Avatar di Lucuzzu
 
Iscritto dal: Apr 2006
Città: Roma
Messaggi: 1008
mi da sempre 0!!!!
se provo a mettere printf sotto all'incremento di spazio, come controllo mi da sempre 0..
forse un problema nell'acquisire la stringa?
Lucuzzu è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 11:16   #4
vincenzo83
Senior Member
 
L'Avatar di vincenzo83
 
Iscritto dal: Jun 2001
Messaggi: 458
Prova a sostituire questo: if(frase[i] == ' ') con if(frase[i] == '\b')
Vedi se trovi qualcosa di utile qui: http://users.dimi.uniud.it/~ivan.sca.../lezione10.pdf
__________________
VIDEOLEZIONI di Matematica, Informatica, Fisica I & II e MOLTO altro, GRATIS !!!
Dooove ? leggete: www.hwupgrade.it/forum/showthread.php?t=1703702

vincenzo83 è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 11:27   #5
Lucuzzu
Senior Member
 
L'Avatar di Lucuzzu
 
Iscritto dal: Apr 2006
Città: Roma
Messaggi: 1008
ottime dispense!
ce ne sono altre..ho provato ad accedere tramite ivan scagnetti ma non trovo nulla li dentro..ciao!
ora provo come dici te
Lucuzzu è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 11:35   #6
Lucuzzu
Senior Member
 
L'Avatar di Lucuzzu
 
Iscritto dal: Apr 2006
Città: Roma
Messaggi: 1008
no con barra \b non cambia nulla...

cmq ho provato così

Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX 100

int conta_parole()
{
    int i, spazio;
    char frase[MAX];
    
    
    strcpy(frase, "ciao mare bello");
    
    
    spazio = 0;
    
    for(i=0;i<strlen(frase);i++)
        
        if(frase[i] == ' ')
        spazio += 1;
        
return spazio;  
}

main()
{
  
    int conta;
    conta = conta_parole();
    
    
    
    if(conta)
        printf("Il numero delle parole presenti nella stringa e': %d\n", conta+1);
    else
        printf("Non ci sono spazi nella stringa\n");
    
system("pause");
}
così funza...c'è un problema nell'acquisizione dello scanf forse gli spazi gli rompono gli zebedei
Lucuzzu è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 11:52   #7
Lucuzzu
Senior Member
 
L'Avatar di Lucuzzu
 
Iscritto dal: Apr 2006
Città: Roma
Messaggi: 1008
ah ok...grazie!
ora cerco
Lucuzzu è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 15:52   #8
grogdunn
Member
 
Iscritto dal: Jun 2007
Messaggi: 96
prova a fare magari una lettura più brutta stilisticamente ma con il getchar() o il getch() (non ricordo le sottili differenze tra i 2)... con questi di sicuro ti prende gli spazi e tutto il resto
grogdunn è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 17:40   #9
frizzo28
Senior Member
 
Iscritto dal: Aug 2005
Città: Roma sud
Messaggi: 590
oppure usa la gets() che serve per aquisire una stringa anche se mi sa che non e' standard mi sa che c'e' solo su turbo c++
__________________
-Mac Book intel core duo 1,83GHz, 1,25 Gb RAM
-Amd athlon 64 dual core 4400+, 2 GB RAM, Asus a8n-sli Deluxe, totale 500 GB di HARD DISK(4 hdd)
frizzo28 è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 18:04   #10
Energy++
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 1060
Quote:
Originariamente inviato da frizzo28 Guarda i messaggi
oppure usa la gets() che serve per aquisire una stringa anche se mi sa che non e' standard mi sa che c'e' solo su turbo c++
no, non è solo per il turbo c++, mi pare si trovi in <conio.h>
Energy++ è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 18:37   #11
wizard1993
Senior Member
 
L'Avatar di wizard1993
 
Iscritto dal: Apr 2006
Messaggi: 22462
Quote:
Originariamente inviato da Energy++ Guarda i messaggi
no, non è solo per il turbo c++, mi pare si trovi in <conio.h>
e guarda caso la conio è la libreria non standard
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza
wizard1993 è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 19:30   #12
Energy++
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 1060
Quote:
Originariamente inviato da wizard1993 Guarda i messaggi
e guarda caso la conio è la libreria non standard
non ho detto che è standard, mi riferivo che non c'è solo nel turbo c++
Energy++ è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 20:03   #13
Albi89
Senior Member
 
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
Sicuramente con scanf (come con cin) non può funzionare, in quanto si ferma al primo spazio acquisito.

In C++ io risolverei sostituendo il cin con cin.get() specificando ovviamente una variabile char* d'appoggio e un numero di caratteri massimo.

Mi auguro che qualche conoscitore del C sappia tradurre in codice C
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.
--Gerald Weinberg
Albi89 è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 20:50   #14
Lucuzzu
Senior Member
 
L'Avatar di Lucuzzu
 
Iscritto dal: Apr 2006
Città: Roma
Messaggi: 1008
Quote:
Originariamente inviato da grogdunn Guarda i messaggi
prova a fare magari una lettura più brutta stilisticamente ma con il getchar() o il getch() (non ricordo le sottili differenze tra i 2)... con questi di sicuro ti prende gli spazi e tutto il resto
con strcpy brutto da morire stilisticamente funza, proverò getchar

Quote:
Originariamente inviato da Albi89 Guarda i messaggi
Sicuramente con scanf (come con cin) non può funzionare, in quanto si ferma al primo spazio acquisito.

In C++ io risolverei sostituendo il cin con cin.get() specificando ovviamente una variabile char* d'appoggio e un numero di caratteri massimo.

Mi auguro che qualche conoscitore del C sappia tradurre in codice C
speriamo
Lucuzzu è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 20:55   #15
deadlyomen17
Senior Member
 
L'Avatar di deadlyomen17
 
Iscritto dal: Sep 2004
Città: Cosenza
Messaggi: 2971
io in c++ userei un cin.getline per acquisire la frase, e la funziona strtok per contare le parole...(è in cstring)
deadlyomen17 è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 22:11   #16
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
http://linux.about.com/library/cmd/blcmdl3_getline.htm
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2008, 22:59   #17
frizzo28
Senior Member
 
Iscritto dal: Aug 2005
Città: Roma sud
Messaggi: 590
Quote:
Originariamente inviato da wizard1993 Guarda i messaggi
e guarda caso la conio è la libreria non standard
Si e' vero stavo vedendo or ora che c'e' pure su dev c++
@Lucuzzu Che compilatore usi?

Tipo su dev c++ mi e' bastato predere il codice postato nel primo post e modificarlo cosi'(ho cambiato solo lo scanf con una gets)
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX 100

main()
{
    int i, spazio;
    char frase[MAX];
    
    printf("Inserire una stringa, le cui parole sono intervallate da spazi: ");
 gets(frase);
    fflush(stdin);
    
    
    spazio = 0;
    
    for(i=0;i<strlen(frase);i++)
        
        if(frase[i] == ' ')
        spazio++;
        
    
    
    
    if(spazio>0)
        printf("Il numero delle parole presenti nella stringa e': %d\n", spazio+1);
    else
        printf("Non ci sono spazi nella stringa\n");
    
system("pause");
}
e mi funziona
__________________
-Mac Book intel core duo 1,83GHz, 1,25 Gb RAM
-Amd athlon 64 dual core 4400+, 2 GB RAM, Asus a8n-sli Deluxe, totale 500 GB di HARD DISK(4 hdd)
frizzo28 è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2008, 23:06   #18
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Il problema è che gets() è abbastanza insicura come funzione, getline() già è una migliore scelta.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
Le 10 migliori offerte Amazon di Pasqua:...
Nuove fotografie dagli astronauti di Art...
La toilette della capsula Orion Integrit...
GeForce NOW: ecco tutte le novità in arr...
Il Realme 16 5G debutta sul mercato glob...
HONOR svela tre nuovi tablet: il più int...
Tineco Floor One S9 Master: aspira e pul...
Vivo X300 Ultra, il lancio globale è ini...
Offerte robot aspirapolvere Amazon: ECOV...
L'AI genera codice in 8 minuti e i senio...
Ring Intercom Audio a 44,99€ su Amazon: ...
Apple iPhone 16 crolla a 689€: ecco perc...
Google Pixel 9 a 449,90€ con caricatore ...
Ecco la top 7 delle offerte Amazon, aggi...
Ex ingegnere ammette il sabotaggio: migl...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:10.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v