Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 23
  1. #11
    grazie adesso comincio a capire un po' di più ...

    comunque il mio problema era un altro

    devo inserire una stringa di duo o tre o quattro parole ...

    e ogni parola metterla in un array di stringhe

    CIAO a tutti

  2. #12
    CHIARIMENTO

    char s[100];

    è un unica stringa dalla lunghezza massima di 100 caratteri

    oppure è un array di 100 stringhe diverse?

    Mi sono incasinato ancorà di più

    BAH

    AIUTATEMI

    GRAZIE ANCORA E CIAO

  3. #13
    se scrivi

    char s[100];

    dichiari un vettore di caratteri che contiene una stringa. Per quanto ne so, credo cmq che sia così, la stringa è una sola, composta ( in questo caso ) da max 99 caratteri + il carattere nullo '\0'.

    è importante notare che ogni stringa deve poter contenere i caratteri inseriti più il carattere '\0' che serve ad indicare la fine della stringa.

    se scrivo:

    char stringa[ ] = "ciao";

    in realtà il vettore contiene 5 elementi:

    stringa[ 0 ] = c
    stringa[ 1 ] = i
    stringa[ 2 ] = a
    stringa[ 3 ] = o
    stringa[ 4 ] = \0


    credo sia così... non dovrei sbagliarmi...
    http://www.mangaitalia.net/

    questo è un cazzo metallizzato a quattro ruote e noi due siamo i coglioni che se lo portano dietro - da Bad Boys con Will Smith and Martin Lawrance di John Whoo

  4. #14
    Un Array di Stringhe e' una matrice di Caratteri...

    codice:
    // 10 Stringhe di Massimo 29 Caratteri...
    char arrayStr[10][29+1];  // 1 e' il '\0'
    
    // Inserimento Stringhe nell'Array
    for (i=0; i < 10; i++) {
       printf ("Str %d : ", i+1);
       gets(arrayStr[i]);
    }
    
    // Stampa Stringhe
    for (i=0; i < 10; i++) {
       printf ("%d. %s : ", i+1, arrayStr[i]);
    }
    PoWered by:
    Gentoo 1.5.3 - Kernel 2.6.7
    Debian Sid - Kernel 2.6.7 - Bash 3.0
    Slackware current - Kernel 2.6.7

  5. #15
    grazie molto utile e chiaro

    un'altra domandina

    char t;

    e

    char t[100];


    che differenza c'è?

    il primo è una stringa infinta? mi sembra strano è un errore?

  6. #16
    il primo :
    char t;
    non e' una stringa... e' un carattere...

    scanf("%c", &t);

    pero' se usi gets(t);
    non dovrebbe darti errore ma va' a scrivere in area di memoria che non ti appartengono...In Poche Parole... e' un errore pericoloso...
    PoWered by:
    Gentoo 1.5.3 - Kernel 2.6.7
    Debian Sid - Kernel 2.6.7 - Bash 3.0
    Slackware current - Kernel 2.6.7

  7. #17
    il secondo...(mi ero gia' dimenticato)
    e' una stringa/array di caratteri...

    codice:
    char a;    // Singolo Carattere
    char b[10]; // Array di Caratteri (Stringa)
    char b[10];
    e' una stringa che puo' contenere 9 caratteri...
    il 10 serve per il terminatore '\0'

    es. Stringa 4 Caratteri
    char b[10];

    gets(b);
    Inserendo 'ciao' si ottiene questo :
    codice:
    b[0] = 'c'
    b[1] = 'i'
    b[2] = 'a'
    b[3] = 'o'
    b[4] = '\0'
    Al Contrario di quello che si puo' pensare '\0' e' un singolo carattere... come '\n' '\t' ecc.
    PoWered by:
    Gentoo 1.5.3 - Kernel 2.6.7
    Debian Sid - Kernel 2.6.7 - Bash 3.0
    Slackware current - Kernel 2.6.7

  8. #18
    ovvio

    certe volte mi perdo in un bicchiere d'acqua

    CIAO A TUTTI

    E ANCORA GRAZIE

  9. #19
    Comunque, gets() non mi sembra la scelta migliore per prendere una stringa con spazi vedi sscanf() o fgets()
    Powered by Linux

    "Windows cerca di fare Unix e ci riesce male, Red Hat cerca di fare Windows e ci riesce benissimo" (Jimmy Olgeni)

  10. #20
    Per il tuo problema (se l'ho capito bene) puoi farlo così:

    codice:
    ....
    char str[100];
    char par1[15],par2[15],par3[15],par4[15]; 
    /* 'parn' dove n e il numero di parole che si vuole memorizare */
    int n=1,i,c;
    
    printf("Inserisci la stringa: ");
    gets(str);
    
    for(i=0,c=0;str[i]!='\0';i++,c++)
    {
       if(str[i]!=' ')
       {
       switch(n){
         case 1:
         par1[c]=str[i];
         break;
         case 2:
         par2[c]=str[i];
         break;
         case 3:
         par3[c]=str[i];
         break;
         case 4:
         par4[c]=str[i];
         break;
         default:
         printf("Frase lunga");
         break;
       }
       printf("%c",str[i]);
       }
       else
       {
       n++;
       c=-1;
       printf("\n");
       }
    }
    in pratica stampa e mette in un vettore la parola, Se 'n' e uguale a 1 mette la parola nel vettore par1 e cosi via fino alla fine della stringa 'str'.

    Io lo vedo risolvibile cosi magari c'e un modo più semplice...
    Il linguaggio migliore e quello che ti crei da solo...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.