Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Andre00
    Registrato dal
    Mar 2003
    Messaggi
    371

    C ... maledette stringhe

    Alura .. devo mandare una stringa ad un server di 10 caratteri (la definisco di 32 perchè la stringa può variare di lunghezza ma il problema è un altro)
    ora se io inizializzo questa stringa all'inizio

    es
    char buffer_to_send[32]="Stringa ok" //la lunghezza è 10 caratteri giusto?
    tutto funziona.

    Quindi
    se invece nel programma azzero la stringa
    bzero (buffer,strlen(buffer);

    chiedo all'utente un'altra stringa a (supponiamola definita come char a[32])
    scanf("%s",&a);
    L'utente inserisce ok //a='ok' giusto?

    ora io faccio esattamente questa operazione:

    buffer_to_send[0]='S';buffer_to_send[1]='t';
    buffer_to_send[2]='r';buffer_to_send[3]='i';
    buffer_to_send[4]='n';buffer_to_send[5]='g';
    buffer_to_send[6]='a';buffer_to_send[7]=' ';
    for (i=0;i<=strlen(a)-1;i++) { buffer_to_send[i+8]=a[i]; }
    buffer_to_send[10]='\0';

    la stringa buffer_to_send ora dovrebbe valere
    "Stringa ok" giusto?

    bene la mando al server... e mi dice che non è uguale a quella definita all'inizio
    char buffer_to_send[32]="Stringa ok"

    Perchè... mmm che rabbia..!

    CIAO e grazie in anticipo!

    mi insospettisce il buffer_to_send[7]=' '; // tentativo di inserire uno spazio tra 'Stringa' e ciò che inserisce l'utente... magari sbaglio qui......aiuto.......
    L'incubo peggiore è non poter più sognare...

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il nome della stringa e' gia' il puntatore alla stringa. Quindi non devi scrivere

    scanf("%s",&a);

    ma

    scanf("%s", a);

    Ma a parte questo, dovresti fare vedere come confronti le stringhe ...

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    E magari non te la dovresti prendere con le povere stringhe del C che non hanno mai fatto del male a nessuno... o quasi...

    Il titolo lo correggo io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.