> For the complete documentation index, see [llms.txt](https://bla0x1s-organization.gitbook.io/untitled-1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bla0x1s-organization.gitbook.io/untitled-1/reverse-engineering/c-programming/strings.md).

# STRINGS

Los strings se utilizan para almacenar texto/caracteres.

Para esto se usa el `char` y a su ves crear un array para el string:

```c
char string[] = "Hello Word";
```

Para imprimir un string debe de usar `printf()` junto a su especificador de formato `%s` para especificar que estamos trabajando con strings:

```c
char string[] = "Hello Word";
printf("%s", string);
```

Podemos acceder a una sola letra o carcter del string ya que son iguales a los arrays, para esto usamos en ves de `%s` -> `%c` :&#x20;

```c
char string[] = "Hello word";
printf("%c", string[0]);
```

## Funciones en Strings

Tenmos muchas funciones de strings que se pueden sar para realizar ciertas operaciones de cadenas.

Para usarlo debemos incluir el \<string.h>:

```c
#include <string.h>
```

Veamos un ejemplo para obtener la longitud de un string usadno la funcion `strlen()`

```c
char string[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("d", strlen(string));
```

## Concatenar Strings

Para conbinar strings podemos usar `strcat():`

```c
char str1[20] = "Hello"; // El 20 significa el tamano del str1
char str2[] = "Word";

strcat(str1, str2);
printf("%s", str1);
```

## Copiar Strings

Para copiar el valor de un atring para otro se usa `strcpy()`:

```c
char str1[20] = "Hello Word"; // El 20 significa el tamano del str1
char str2[20];

strcpy(str1, str2);
printf("%s", str2);
```

## Comparar Strings

Para comparar cadenas se usa `strcmp()`. Devuelve 0 si las dos cadenas son iguales, de lo contrario un valor que no es 0:

```c
char str1[] = "Hello";
char str2[] = "Hello";
char str3[] = "hi";

printf("%d\n". strcmp(str1, str2));

printf("%d\n", strcmp(str1, str3));
```
