Comparando número fijo de caracteres de dos cadenas en lenguaje C

por: IncludeHelp, de 23 de-ENE-2017

Como sabemos que strcmp () se utiliza para comparar dos cadenas, pero el strcmp () compara todos los personajes ( hasta NULL ) de dos cadenas. Siempre que queramos comparar los caracteres de un índice fijo de dos cadenas, entonces no podemos utilizar strcmp () .

memcmp () – Memoria Comparar

memcmp () se puede utilizar con tales case, ya que esta función compara Sólo número determinado de caracteres en dos cuerdas.

vamos a entender con un ejemplo, hay una cadena que contiene tres caracteres del código de departamento y el nombre del Administrador (Después de un colon y el espacio, marque la siguiente declaración en el programa). Tenemos que imprimir el nombre del director, junto con el nombre del departamento if partidos código de departamento con el (usuario código de departamento / entrada definida) dado.

Considere las declaraciones dadas (código) para comparar el número fijo de caracteres (bytes)

char deptDetails[]="HRD: Mr. ABC";
if(memcmp(deptDetails,DEPT_TO_CHECK,3)==0)
{
printf("Dept. name: Human Resource Department, Manager: %sn",deptDetails+5);
}

Explicación

Declaración de memcmp (deptDetails, DEPT_TO_CHECK, 3) compararán “HRD” (que es la cadena definida en macro DEPT_TO_CHECK ) con los deptDetails , primero tres caracteres se compararon if los caracteres son iguales memcpy () se return 0. partidos condición If, programa imprimirá el nombre del director de índice 5 de cadena deptDetails .

Lo que es deptDetails + 5?

Esta es la dirección del quinto índice de deptDetails y esto va a imprimir la cadena completa del índice 5. En este ejemplo, la cadena del 5 Índice es “Sr. ABC” que es el nombre de Gerente.

Aquí está el programa completo

#include <stdio.h>
#include <string.h>
#define DEPT_TO_CHECK "HRD"
int main()
{
char deptDetails[]="HRD: Mr. ABC";
if(memcmp(deptDetails,DEPT_TO_CHECK,3)==0)
{
printf("Dept. name: Human Resource Department, Manager: %sn",deptDetails+5);
}
else{
printf("Details not found!!!n");
}
return 0;
}

salida

    Dept. name: Human Resource Department, Manager: Mr. ABC


Deja un comentario

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