Strings y vectores de C

Por Ariel Parra

CPC Γα=Ω5

caracteres

Un caracter es una unidad de información que corresponenden a un símbolo,digito,puntuaciones,signo,grafema,grafo,garabato o los más conocidos que son las letras, las cuales forman las palabras que usamos y conocemos

En C los caracteres no son más que un conjunto de numeros para representar un caracter a travez de algun tipo de codificación, por defecto C++ utiliza la decodificación de ASCII (American Standard Code for Information), aunque también soporta UNICODE/UTF-8 (En Windows tienes que declarar el uso explicitamente con la función SetConsoleOutputCP(CP_UTF8)).

la sintaxis básica de declaración de un char debe ser con un caracter entre comillas simples ' ', por ejemplo:

char c; 
char c = 'a';
char c{'a'};
CPC Γα=Ω5

ASCII

#c

CPC Γα=Ω5

vectores en C

En C, un vector (o arreglo) es una colección de elementos del mismo tipo, almacenados en ubicaciones de memoria contiguas. Se accede a los elementos del vector mediante un índice, utilizando el operador [ ].

int arr[5]; // Declara un vector con capacidad para 5 enteros
arr[0] = 1; // Asigna el valor 1 al primer elemento

Recorrer un vector en C:

for (int i = 0; i < 5; i++) {
    cout<<("Elemento en arr[" << i << "] = " << arr[i]);
}
CPC Γα=Ω5

Strings en C

Al conjunto de caracteres se les llama Strings (también conocidos como cadenas o vectores/arrgelos de char) y se declaran con comillas dobles " ",en esencia son vectores de caracteres que terminan con un carácter nulo (\0).

char c[] = "valor";
char c[6] = "valor"; // El compilador añade automáticamente '\0'
char c[] = {'v', 'a', 'l', 'o', 'r', '\0'};
char c[6] = {'v', 'a', 'l', 'o', 'r', '\0'};
CPC Γα=Ω5

Matrices

Las matrices en C son arreglos multidimensionales, lo que significa que son arreglos de arreglos. La más común es la matriz bidimensional, que se puede imaginar como una tabla de filas y columnas.

int matriz[3][4];

La inicialización de una matriz se puede hacer al momento de la declaración, utilizando llaves {} para agrupar los elementos de cada fila:

int matriz[3][4] = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};
CPC Γα=Ω5

Recorrer una Matriz

Generalmente, se utilizan bucles anidados para recorrer todos los elementos de una matriz. Aquí hay un ejemplo de cómo imprimir todos los elementos de una matriz bidimensional:

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 4; j++) {
        cout<< matriz[i][j];
    }
    cout<< "\n";//salto de línea
}
CPC Γα=Ω5

Aritmética de Caracteres

  • Convertir Minúsculas a Mayúsculas
char minuscula = 'b';
char mayuscula = minuscula - ('a' - 'A'); 
  • Convertir Mayúsculas a Minúsculas
char mayuscula = 'B';
char minuscula = mayuscula + ('a' - 'A'); 
  • Convertir Caracter a Entero
char numC = '1'; int numI = numC - '0'; // numI será 1
  • Convertir Entero a Caracter
int numI = 1; char numC = numI + '0'; // numC será '1'
CPC Γα=Ω5

Funciones de Caracteres y Strings en C

<cctype> <cstdlib> <cstring>
isalpha(char) atoi(cstring) strcpy(string-dest, string-origen)
isdigit(char) atof(cstring) strcat(string-dest, string-origen)
isupper(char) atol(cstring) strncat(string-dest, string-origen, int)
islower(char) strtol(cstring, NULL, 0) strcmp(string, string-comparar)
tolower(char) itoa(int, cstring, 10) strncmp(string, string-comparar, int)
toupper(char) sprintf(cstring,"%i",int) strlen(string)
CPC Γα=Ω5

Problemas

Strings:

Vectores:

CPC Γα=Ω5

Referencias

CPC Γα=Ω5

preguntar cuantos bits/bytes tenia un char y su relación con el ASCII

Preguntarles porqué es c[6] porqué 6 si son 5 caracteres ?

abrir algunos de estos links para que vean su uso, también explicar que nunca se deberia usar itoa() debido a que es una función exclusiva de Windows y deperian usar sprintf() en su lugar