STUFF( )

Borra e inserta caracteres en una cadena

Sintaxis

     STUFF(, , , ) –> cNuevaCadena

Argumentos

es la cadena de caracteres destino en la que se insertan y borran caracteres.

es la posición inicial en la que se produce la inserción/borrado.

es el número de caracteres que hay que borrar.

es la cadena que debe insertarse.

Devuelve

STUFF() devuelve una copia de con los caracteres especificados borrados y con insertada.

 Descripción

STUFF() es una función de caracteres que borra caracteres de empezando en la posición . A continuación, inserta en la cadena resultante empezando en la posición para formar la cadena de retorno. De esta forma, STUFF() puede realizar las seis operaciones siguientes:

     ¦  Insertar: Si es cero, no se suprimen caracteres de . se inserta en y se devuelve toda la cadena. Por ejemplo STUFF(“Mi perro tiene pulgas.” 16, 0, “no “) devuelve “Mi perro no tiene pulgas”.

     ¦  Sustituir: Si tiene la misma longitud que , sustituye los caracteres empezando en y la cadena resultante tiene la misma longitud que la original. Por ejemplo, STUFF(“Mi perro tiene pulgas.”, 16, 6, “huesos”) devuelve “Mi perro tiene huesos”.

     ¦  Borrar: Si es una cadena nula (“”), se borra de el número de caracteres especificado por y la cadena se devuelve sin ningún carácter añadido. Por ejemplo, STUFF(“Mi perro tiene pulgas.”, 1, 3, “”) devuelve “perro tiene pulgas”.

     ¦  Sustituir e insertar: Si es más largo que , se sustituyen todos los caracteres desde hasta y se inserta el resto de . Puesto que se insertan más caracteres de los que se borran, la cadena resultante siempre es más larga que la original. Por ejemplo, STUFF(“Mi perro tiene pulgas.”, 10, 5, “nunca ha tenido”) devuelve “Mi perro nunca ha tenido pulgas”.

     ¦  Sustituir y borrar: Si la longitud de es menor que , se borran más caracteres de los que se insertan. Por lo tanto, la cadena resultante es más corta que la original. Por ejemplo, STUFF(“Mi perro tiene pulgas.”, 10, 5, “es”) devuelve “Mi perro es pulgas”.

     ¦  Sustituir y borrar el resto: Si es mayor o igual que el número de caracteres restantes de empezando por , los caracteres restantes se borran antes de insertar . Por ejemplo, STUFF(“Mi perro tiene pulgas.”, 10, 13, “es”) devuelve “Mi perro es”.

Ejemplos

     ¦  Estos ejemplos demuestran las seis operaciones básicas de STUFF():

        // InsertAR

        ? STUFF(“ABCDEF”, 2, 0, “xyz”)         // Resultado: AxyzBCDEF

        // Sustituir

        ? STUFF(“ABCDEF”, 2, 3, “xyz”)         // Resultado: AxyzEF

        // Borrar

        ? STUFF(“ABCDEF”, 2, 2, “”)            // Resultado: ADEF

        // Sustituir e insertar

        ? STUFF(“ABCDEF”, 2, 1, “xyz”)         // Resultado: AxyzCDEF

        // Sustituir y borrar

        ? STUFF(“ABCDEF”, 2, 4, “xyz”)         // Resultado: AxyzF

        // Sustituir y borrar resto

        ? STUFF(“ABCDEF”, 2, 10, “xyz”)        // Resultado: Axyz

Ficheros: La biblioteca asociada es EXTEND.LIB, el módulo fuente asociado: SOURCE\SAMPLE\STUFF.C.