View Full Version : [C]LEGGERE PAROLA X PAROLA FILE
ciao ero interessato al codice c di un ciclo che a ogni iterazione nella variabile
char *parola ci vada a finire il contenuto di una parola del file(poi utilizzerò il ciclo per altre operazione".
il file è cosi strutturato
esempio:
ciao sono dario, come stai ?
io sto bene, grazie.
a ogni iterazione in parola voglio il contenuto della iesima parola
NB:le parole sono separate da spazi, ma non mi interessa salvare in parola eventuali caratteri di punteggiatura esempio
alla 3 iterazione parola voglio che contenga "dario" e non "dario,"
vi sarei grato di postarmi proprio il codice del tipo
while(ris!=EOF){
...
...
...
parola=.....
}
grazie
i caratteri di punteggiatora che voglio escludere sono quelli della lingua italiana
:,!?.;
il file rispetta la regola dell italiano che dopo carattere di punteggiatura la parola è separata da uno spazio
Se non ti vuoi sbattere coi controlli, prova con le regular expression.
banryu79
18-05-2010, 11:16
Il Regolamento di questa sezione del Forum non consente di chiedere la soluzione completa di un esercizio, ma questo lo saprai già dato che avrai sicuramente letto il regolamento.
In nessun modo ti verrà postato il codice completo.
Dunque prova a postare una tua prima implementazione che proviamo ad aiutarti sui problemi/dubbi specifici.
Intanto: sapresti descrivere l'algoritmo che vuoi realizzare a parole, specificando in ordine le singole operazioni da compiere?
Se sì prova a buttare giù uno pseudo-codice, se no spiegaci dove ti blocchi.
cioè?Dall'introduzione alla guida che sto scrivendo in merito (sottoporrò a breve la versione completa a cionci):
Vi sarà capitato, programmando, di dover effeturare delle ricerche all'interno di una stringa di una particolare sottostringa. Pratica comunissima, tanto che pressoché tutti i linguaggi di programmazione mettono a disposizione gli strumenti per farlo in maniera semplice e concisa.
Tuttavia, potrebbe anche esservi capitato di non dover ricercare una stringa precisa, ma qualcosa di più vago. Potrebbe anche essere semplicemente che si voglia cercare "pippo" all'interno di una stringa, ma che possa anche andare bene "Pippo", "PIPPO" o "pIpPo": normalmente, si converte tutta la stringa in minuscolo (o in maiuscolo) con le apposite funzioni e poi si cerca solo "pippo" (o "PIPPO").
Le cose si complicano se si vuole invece cercare una sottostringa tipo "Pippo ha XX anni", dove XX può essere un qualsiasi numero non negativo, nel qual caso si dovrebbe, nell'ordine,
1. cercare la stringa "Pippo ha ";
2. verificare che i caratteri successivi prima dello spazio successivo siano effettivamente cifre decimali;
3. verificare che siano seguite dalla stringa " anni".
Le cose, allora, diventano complesse perché si vogliono evitare che casi come "Pippo ha corso fino a casa" o "Pippo ha 3 gatti" risultino in un "falso positivo". Il codice da scrivere si complica di conseguenza.
Non parliamo, poi, di dover andare a cercare cose come "Pippo", "PIPPO" ma non "pIPPO", oppure una data, o peggio un codice fiscale, se non, addirittura, un tag X/HTML (:eek:).
Ecco allora che vengono in nostro soccorso le Regular Expressions, che possono fare tutto questo e molto, molto di più.
vi sarei grato di postarmi proprio il codice
...
grazie
Certo, con piacere.
#include <stdio.h>
#define l while
#define _ getchar
#define wtf puts(_0);
#define OMG EOF
#define WORSHIP l((((t)=(_()))!=OMG)){
#define THE_TROLL_KING(likes,n00bz,L0LZ) w=((likes)?(n00bz()):(L0LZ()));
w,t,f=0;char _0[42];plz_feed(){*(f+_0)='\0';f=0;wtf}teh_troll(){f++[_0]=t;}
main(){
WORSHIP
THE_TROLL_KING
((t==OMG||t==0x20||t==0xA||t==0x2C||t==0x2E
||t==0x3A||t==0x3F||t==0x21||t==0x3B),plz_feed,teh_troll)}}
ps. Trolling is an art.
edit: gli ho dato un layout più gradevole... oggi mi annoio.
banryu79
18-05-2010, 13:10
#include <stdio.h>
//#define l while
//#define _ getchar
//#define wtf puts(_0);
//#define OMG EOF
//#define WORSHIP while((((t)=(getchar()))!=EOF)){
//#define THE_TROLL_KING(likes,n00bz,L0LZ) w=((likes)?(n00bz()):(L0LZ()));
w,t,f=0;
char _0[42];
plz_feed() {
*(f+_0)='\0';
f=0;
puts(_0);
}
teh_troll() {
f++[_0]=t;
}
main() {
while((((t)=(getchar()))!=EOF)){
w= t==EOF || t==0x20 || t==0xA || t==0x2C || t==0x2E || t==0x3A || t==0x3F || t==0x21 || t==0x3B
? plz_feed()
: teh_troll();
}
}
Carino :D
Di la verità: l'hai fatto solo per fare un dispetto a me, dato che avevo detto:
In nessun modo ti verrà postato il codice completo.
Ti dovrei segnalare a Cionci, ti :Prrr:
(Ovviamente si scherza :D )
Carino :D
Di la verità: l'hai fatto solo per fare un dispetto a me, dato che avevo detto:
Ti dovrei segnalare a Cionci, ti :Prrr:
(Ovviamente si scherza :D )
Eh si, sempre a rompere il cazzo ai n00b che chiedono solo una mano! Io ho deciso che d'ora in avanti, quando potrò, andrò contro corrente e risolverò loro tutti gli esercizi! :Prrr:
In realtà quello è si uno dei possibili codici completi, ma ho lasciato un piccolo bug, che lascio come proverbiale "esercizio al lettore" :D
banryu79
18-05-2010, 13:36
In realtà quello è si uno dei possibili codici completi, ma ho lasciato un piccolo bug, che lascio come proverbiale "esercizio al lettore" :D
Sì, beh, senza contare che non legge/scrive da/su file :D
Sì, beh, senza contare che non legge/scrive da/su file :D
Beh per quello basta redirigere il file sullo standard input e funziona: ./a.out < input.txt
ps. ok scusa, la smetto di trollare... :D
banryu79
18-05-2010, 13:58
ps. ok scusa, la smetto di trollare... :D
Sì, vabbè a sto punto digli pure che l'errore è un parens mismatch e che se sa cosa sono le define basta usare una funzione di cerca e sostituisci in un qualsiasi editor di testo, ed è a cavallo... :doh:
Certo, con piacere.
#include <stdio.h>
#define w while
#define _ getchar
#define __ puts(s);
#define OMG EOF
#define OMG_MAGIC w((((c)=(_()))!=OMG)) {
#define ___ }
#define CHOOSE_WISELY_SIR(c,t,f) if(c){t;}else{f;
char s[256];int c,i=0;
f(){s[i]='\0';__ i=0;}g(){s[i]=c; ++i;}main(){
OMG_MAGIC
CHOOSE_WISELY_SIR
((c==OMG||c==0x20||c==0xA||c==0x2C||c==0x2E
||c==0x3A||c==0x3F||c==0x21||c==0x3B),f(),g())
___
___
___
ps. Trolling is an art.Porco...
Dato che stavate continuando a parlarne mi sono messo a leggerlo per bene, e solo ora ho capito cosa fa :asd:
Ma t'intendi di obscure coding?
... se sa cosa sono le define basta usare una funzione di cerca e sostituisci in un qualsiasi editor di testo, ed è a cavallo... :doh:
Secondo me fa prima a scriverselo da solo :) E anche quando, al massimo finirebbe in groppa a un asino...
Ma t'intendi di obscure coding?
Assolutamente no. E' abbastanza lamer come obfuscation...
banryu79
18-05-2010, 14:52
Secondo me fa prima a scriverselo da solo :) E anche quando, al massimo finirebbe in groppa a un asino...
O ingroppato come un asino, dal prof :asd:
Ma t'intendi di obscure coding?
Assolutamente no. E' abbastanza lamer come obfuscation...
Shinya... passa al alto obscuro del coding...
http://dosan.skku.ac.kr/~sjkim/icons/Hobby/Figure/DarthVader%28Medicom%29_03.jpg
O ingroppato come un asino, dal prof :asd:
Shinya... passa al alto obscuro del coding...
La versione che hai quotato è obsoleta, l'ho aggiornata; immagino tu sia profondamente interessato a nutrire il troll modificando opportunamente il quote :oink:
Oppure no...
oggi mi annoio.Se vede... :asd:
banryu79
18-05-2010, 16:25
La versione che hai quotato è obsoleta, l'ho aggiornata; immagino tu sia profondamente interessato a nutrire il troll modificando opportunamente il quote :oink:
Oppure no...
Fatto my lord, anche se temo ci sia qualche imprecisione (ho inserito/tolto parentesi utili/inutili a muzzo, e aggiunto un ';' che mancava, mi pare; comunque non so stato li a cercarli col lanternino, quindi ce ne possono essere altri).
@EDIT: mi se che esoni a sto punto fuggirà inorridito dal thread... Se nutri il troll in erba con sta roba, schiatta!
sono solo piu confuso di prima
banryu79
18-05-2010, 17:12
sono solo piu confuso di prima
L'ultimo post per te utile è il #5 (http://www.hwupgrade.it/forum/showpost.php?p=32013367&postcount=5).
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.