per concatenare due char cosa devo usare??
va bene:
char *strncat( char *strDest, const char *strSource, size_t count );
??
per concatenare due char cosa devo usare??
va bene:
char *strncat( char *strDest, const char *strSource, size_t count );
??
ciao!
sto provando a concatenare due char ma ci sono cose che non capisco..
questo e' quello che ottengo in un ciclo in cui incremento ogni volta pBuffer (pBuffer = pBuffer + 2):
dove il 'tot' che stampo e' cosi' definito:
cout << "tot: " << strncat( pBuffer, (pBuffer+1), 1) << endl;
*pBuffer: é
*(pBuffer+1): ¹
tot: é¹ò¹3¹þ¹0³∟²é²&²Ë■Á_°·¹¹¹¹
Premere un tasto per continuare . . .
*pBuffer: ò
*(pBuffer+1): ¹
tot: ò¹3¹þ¹0³∟²é²&²Ë■Á_°·¹¹¹¹¹
Premere un tasto per continuare . . .
*pBuffer: 3
*(pBuffer+1): ¹
tot: 3¹þ¹0³∟²é²&²Ë■Á_°·¹¹¹¹¹¹
Premere un tasto per continuare . . .
*pBuffer: þ
*(pBuffer+1): ¹
tot: þ¹0³∟²é²&²Ë■Á_°·¹¹¹¹¹¹¹
io mi aspettavo solo i primi due caratteri.. cioe':
*pBuffer: é
*(pBuffer+1): ¹
tot: é¹
Premere un tasto per continuare . . .
*pBuffer: ò
*(pBuffer+1): ¹
tot: ò¹
Premere un tasto per continuare . . .
*pBuffer: 3
*(pBuffer+1): ¹
tot: 3¹
Premere un tasto per continuare . . .
*pBuffer: þ
*(pBuffer+1): ¹
tot: þ¹
dove sbaglio?? e' un caso che *(pBuffer+1) sia sempre uguale a ¹??
grazie!
Originariamente inviato da raphi01
per concatenare due char cosa devo usare??
va bene:
char *strncat( char *strDest, const char *strSource, size_t count );
??
cosi puoi concateneare PUNTATORI a char
ovvero stringhe ...
non puoi concatenare un singolo carattere
cosi ma una stringa di 1 carattere al max!
per registrare i campioni dalla scheda audio uso una funzione che mi mette in una lista di buffer gli elementi 'lpData' definiti nella struttura 'WAVEHDR'.
per leggere i campioni prendo la lista e copio tutto il contenuto in uno spazio di memoria di cui poi conosco 'char* pBuffer', puntatore alla prima cella di memoria che contiene i dati che mi servono..
pero' devo leggere i campioni come int percio' dovrei considerare (da pBuffer in poi) gruppi di due char per volta e convertirli in int..
..mhmm la spiegazione non e' ancora un granche', vero??..
..e' per questo che volevo concatenare due caratteri, non una stringa (sigh), per poi convertire il risultato in int..
char stringa [20];
char primo = 'F', secondo = 'x';
int len;
len = strlen( stringa );
stringa [len-1] = primo;
stringa [len] = secondo;
stringa [len+1] = '\0'; /* chiudo */
..ho fatto cosi':
char stringa [2];
stringa [0] = pBuffer[0];
stringa [1] = pBuffer[1];
stringa [2] = '\0';
cout << "stringa: " << stringa << endl;
cout << "stringa: " << atoi( stringa ) << endl;
in questo modo riesco a mettere insieme i due char ma non riesco a convertire in int.. ho sempre 0 tranne quando pBuffer[0] e' un numero.. in quel caso atoi( stringa ) e' uguale a quel numero..
questo e' quello che stampo a video:
...
Premere un tasto per continuare . . .
pBuffer[0]: R
pBuffer[1]: ¨
stringa: R¨
stringa: 0
stringa: 0
Premere un tasto per continuare . . .
pBuffer[0]: 1
pBuffer[1]: ¨
stringa: 1¨
stringa: 1
stringa: 1
Premere un tasto per continuare . . .
pBuffer[0]: m
pBuffer[1]: °
stringa: m°
stringa: 0
stringa: 0
Premere un tasto per continuare . . .
...
perche' mi esce sempre 0?? come faccio a convertirlo in int??
grazie ancora (anche per la pazienza)