Aritmética de caracteres en C y C++

Como ya se sabe, el rango de caracteres está entre -128 y 127 o de 0 a 255. Este punto debe tenerse en cuenta al hacer aritmética de caracteres. 

¿Qué es la aritmética de caracteres ?

La aritmética de caracteres se utiliza para implementar operaciones aritméticas como suma, resta, multiplicación y división de caracteres en lenguaje C y C++. 
En la aritmética de caracteres, el carácter se convierte en un valor entero para realizar la tarea. Para esto se utiliza el valor ASCII.
Se utiliza para realizar la acción de las cuerdas.

Para entender mejor pongamos un ejemplo.

C

// C program to demonstrate character arithmetic.
#include <stdio.h>
 
int main()
{
    char ch1 = 125, ch2 = 10;
    ch1 = ch1 + ch2;
    printf("%d\n", ch1);
    printf("%c\n", ch1 - ch2 - 4);
    return 0;
}
Producción

-121
y

Entonces, el especificador %d hace que se imprima un valor entero y el especificador %c hace que se imprima un valor de carácter. Pero se debe tener cuidado de que al usar el especificador %c, el valor entero no debe exceder 127. 
Hasta ahora todo bien.
Pero para c ++ se desarrolla un poco diferente.

Mira este ejemplo para entender mejor. 

C++

// A C++ program to demonstrate character
// arithmetic in C++.
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    char ch = 65;
    cout << ch << endl;
    cout << ch + 0 << endl;
    cout << char(ch + 32) << endl;
    return 0;
}

Producción: 

A
65
a

Sin un valor de carácter de operador ‘+’ se imprime. Pero cuando se usa junto con el operador ‘+’ se comporta de manera diferente. El uso del operador ‘+’ lo encasilla implícitamente en un ‘int’. Entonces, para concluir, en la aritmética de caracteres, el encasillamiento de la variable char a ‘char’ es explícito y a ‘int’ es implícito. 

Tomemos un ejemplo más.

C

#include <stdio.h>
// driver code
int main(void)
{
    char value1 = 'a';
    char value2 = 'b';
    char value3 = 'z';
    // perform character arithmetic
    char num1 = value1 + 3;
    char num2 = value2 - 1;
    char num3 = value3 + 2;
    // print value
    printf("numerical value=%d\n", num1);
    printf("numerical value=%d\n", num2);
    printf("numerical value=%d\n", num3);
    return 0;
}

Producción:

numerical value=100  
numerical value=97
numerical value=124

Este artículo es una contribución de Parveen Kumar . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *