Strcat ()
Da Gambas-it.org - Wikipedia.
Versione del 16 giu 2024 alle 14:48 di Vuott (Discussione | contributi)
La funzione della libreria di C
char *strcat(char *dest, const char *src)
concatena due stringhe; in particolare aggiunge la stringa src al termine della stringa dest.
Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta:
Private Extern strcat(dest As Pointer, src As Pointer) As Pointer In "libc:6"
Semplice esempio di uso in Gambas:
' char *strcat(char *dest, const char *src) Private Extern strcat(dest As Pointer, src As Pointer) As Pointer In "libc:6" Public Sub Main() Dim a, b As Pointer Dim s1, s2 As String s1 = "super" a = VarPtr(s1) s2 = "pippo" b = VarPtr(s2) strcat(a, b) Print String@(a) End
Uso della funzione "strcat()" all'interno di una libreria esterna creata dall'utente
Se il programmatore vuole utilizzare la funzione strcat all'interno di una libreria esterna specifica da lui creata, allora si potrà adottare il seguente codice.
La libreria esterna specifica, il cui file di codice sorgente sarà chiamato ad esempio libconc.c, può essere:
#include <string.h> char *r; char t[2] = "po"; char * concatena(char * s) { r = "pip"; strcat(s,r); strcat(s,t); return s; }
e verrà posta ad esempio nella cartella "Dati" dell'applicativo.
Il codice Gambas potrà essere:
Private Extern concatena(sC As Pointer) As String In "/tmp/libconc" Public Sub Main() Dim s As String Dim po As Pointer Shell "gcc -o /tmp/libconc.so " & Application.Path &/ "libconc.c -shared -fPIC" Wait po = Alloc("super") s = concatena(po) Print "---> "; s Free(po) End