Strcpy (): differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
(Creata pagina con "La funzione '''''strncpy( )''''', dichiarata nel file header di sistema "''/usr/include/string.h''" char *strcpy (char *__restrict __dest, const char *__restrict __src) copia...")
 
Nessun oggetto della modifica
Riga 12: Riga 12:
  <FONT Color=gray>' ''char *strcpy (char *__restrict __dest, const char *__restrict __src)''
  <FONT Color=gray>' ''char *strcpy (char *__restrict __dest, const char *__restrict __src)''
  ' ''Copy SRC to DEST.''</font>
  ' ''Copy SRC to DEST.''</font>
  Private Extern strcpy(__dest As Pointer, __src As Pointer)
  Private Extern strcpy(__dest As Pointer, __src As String)
   
   
   
   
Riga 18: Riga 18:
    
    
   Dim s As String
   Dim s As String
   Dim p1, p2 As Pointer
   Dim p As Pointer
    
    
  s = "abcde fghil"
  s = "abcde fghil"
    
    
  p1 = VarPtr(s)
  p = VarPtr(s)
  p2 = Alloc(Len(s) + 1)
    
    
  <FONT Color=gray>' ''Copia nell'area di memoria, puntata dal Puntatore del 1° argomento, la stringa contenuta nell'area di memoria puntata dal Puntatore del 2° argomento:''</font>
  <FONT Color=gray>' ''Copia nell'area di memoria, puntata dal Puntatore del 1° argomento, la stringa contenuta variabile del 2° argomento:''</font>
  <FONT Color=#B22222>strcpy</font>(p2, p1)
  <FONT Color=#B22222>strcpy</font>(p, s)
    
    
  <FONT Color=gray>' ''Per leggere la stringa, presente nell'area di memoria puntata dal Puntatore del 1° parametro, dereferenziamo tale Puntatore:''</font>
  <FONT Color=gray>' ''Per leggere la stringa, presente nell'area di memoria puntata dal Puntatore del 1° parametro, dereferenziamo tale Puntatore:''</font>
  Print String@(p2)
  Print String@(p)
   
<FONT Color=gray>' ''Liberiamo la porzione di memoria precedentemente allocata, e ci assicuriamo anche che il Puntatore non punti ad alcuna cella di memoria:''</font>
  Free(p2)
  p2 = 0
    
    
  '''End'''
  '''End'''

Versione delle 07:00, 16 ago 2019

La funzione strncpy( ), dichiarata nel file header di sistema "/usr/include/string.h"

char *strcpy (char *__restrict __dest, const char *__restrict __src)

copia nell'area di memoria puntata dal Puntatore __dest la stringa puntata dal Puntatore __src.

Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché bisognerà dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta:

Private Extern strcpy(__dest As Pointer, __src As Pointer) In "libc:6"


Mostriamo un semplice esempio:

Library "libc:6"

' char *strcpy (char *__restrict __dest, const char *__restrict __src)
' Copy SRC to DEST.
Private Extern strcpy(__dest As Pointer, __src As String)


Public Sub Main()
 
 Dim s As String
 Dim p As Pointer
 
 s = "abcde fghil"
 
 p = VarPtr(s)
 
' Copia nell'area di memoria, puntata dal Puntatore del 1° argomento, la stringa contenuta variabile del 2° argomento:
 strcpy(p, s)
  
' Per leggere la stringa, presente nell'area di memoria puntata dal Puntatore del 1° parametro, dereferenziamo tale Puntatore:
 Print String@(p)
  
End



Riferimenti