strcat

strcat


En computación el lenguaje de programación C ofrece una llamada en la biblioteca estándar de C denominada strcat. Esta permite añadir un bloque de memoria a otro. Los dos bloques deben terminar con un carácter nulo. Como en C las cadenas de caracteres no son tipos de datos en sí mismos strcat añade una cadena a otra pasándole dos punteros a los bloques de memoria reservados. El nombre strcat es una abreviación de "string concatenate" (concatenación de cadena).

Por ejemplo:

 char str1[100] = "¡ Hola,";    /* 100: se reserva espacio extra */
 strcat (str1, " mundo !\n");
 printf (str1);                 /* muestra "¡ Hola, mundo !" en la salida estándar */

Esta es una posible implementación de strcat:

  char *strcat (char *dest, const char *src)
  {
    const char *p;
    char *q;
 
    for (q = dest; *q != '\0'; q++)
       ;
 
    for(p = src; *p != '\0'; p++, q++)
       *q = *p;
 
    *q = '\0';
 
    return dest;
  }

También se puede definir usando otras funciones de la biblioteca de cadenas:

 char *strcat (char *dest, const char *src)
 {
     strcpy (dest + strlen (dest), src);
     return dest;
 }

strcat puede ser peligroso porque si la cadena a añadir es demasiado larga para contener las dos cadenas sobreescribirá la memoria adyacente. Por lo que puede causar comportamiento impredecibles. Normalmente el programa terminará con un error del tipo violación de acceso. Aunque un atacante experto puede usarlo para lograr un desbordamiento de búfer para atacar un sistema. (ver seguridad informática).

Variantes de comprobación de límites

La variante segura strncat hace lo mismo que strcat pero solo añade un número específico de bytes. Es susceptible a dos tipos de desbordamiento de buffer. El primero ocurre cuando el número de bytes especificados es demasiado largo para la cadena de destino. El segundo cuando la cadena de destino solo puede contener el número exacto de bytes especificados. Estos ataques provocan el llamado off by one error y es explotable por un atacante experto. OpenBSD dispone de una versión más segura llamada strlcat.

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Поможем написать курсовую

Mira otros diccionarios:

  • Strcat — Saltar a navegación, búsqueda En computación el lenguaje de programación C ofrece una llamada en la biblioteca estándar de C denominada strcat. Esta permite añadir un bloque de memoria a otro. Los dos bloques deben terminar con un carácter nulo.… …   Wikipedia Español

  • Strcat — In computing, the C programming language offers a library function called strcat that allows one memory block to be appended to another memory block. Both memory blocks are required to be null terminated. Since, in C, strings are not first class… …   Wikipedia

  • Schlemiel the painter's Algorithm — In software development, a Schlemiel the Painter [ s] algorithm denotes any methodology that is inefficient because the programmer has overlooked some fundamental issues at the very lowest levels of software design. The term was coined by… …   Wikipedia

  • Boilerplate (text) — Boilerplate is any text that is or can be reused in new contexts or applications without being changed much from the original. Many computer programmers often use the term boilerplate code. A legal boilerplate is a standard provision in a… …   Wikipedia

  • Backgrounder — Die Artikel Abbinder und Boilerplate überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte entferne diesen Baustein erst… …   Deutsch Wikipedia

  • Boilerplate — ((auch: Abbinder) oder engl. ursprl. Kesselplatte, Kochplatte, übertragen Standardtext, Textbaustein) bezeichnet einen gleichbleibenden Textblock meist am Ende eines Texts. Im Zusammenhang mit E Mails wird der Begriff auch im Zusammenhang mit der …   Deutsch Wikipedia

  • Symbolkette — Eine Zeichenkette oder ein String (englisch) ist eine Folge von Zeichen (z. B. Buchstaben, Ziffern, Sonderzeichen und Steuerzeichen) aus einem definierten Zeichensatz. Zeichen können sich in einer Zeichenkette wiederholen, die Reihenfolge der… …   Deutsch Wikipedia

  • Zeichenkette — Eine Zeichenkette oder (aus dem Englischen) ein String ist in der Informatik eine Folge von Zeichen (z. B. Buchstaben, Ziffern, Sonderzeichen und Steuerzeichen) aus einem definierten Zeichensatz. Zeichen können sich in einer Zeichenkette… …   Deutsch Wikipedia

  • C string handling — C string redirects here. For the underwear and swimwear, see C string (clothing). C Standard Library Data types Character classification Strings Mathematics …   Wikipedia

  • AutoLISP — is a dialect of Lisp programming language built specifically for use with the full version of AutoCAD and its derivatives, which include Autodesk Map 3D and Autodesk Architectural Desktop . Neither the application programming interface nor the… …   Wikipedia

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”