Función strchr() en C++ y sus aplicaciones

En C++, strchr() es una función predefinida que se utiliza para encontrar la aparición de un carácter en una string. Está presente en el archivo de encabezado cstring.

Sintaxis:

// Devuelve el puntero a la primera ocurrencia
// de c en str[]
char *strchr(const char *str, int c) 

Tenga en cuenta que c se pasa como su promoción int, pero internamente se trata como char.
Aplicación 
Dada una string en C++, necesitamos encontrar la primera aparición de un carácter, digamos ‘a’. 

Ejemplos: 

Entrada: str[] = ‘Esto es una string’
Salida: 9

Entrada: str[] = ‘Mi nombre es Ayush’
Salida: 5

Algoritmo:
1. Pase la string dada en la función strchr() y mencione el carácter que necesita señalar. 
2. La función devuelve un valor e imprime el valor.

A continuación se muestra la implementación del algoritmo anterior:

CPP

// CPP program to find position of a character
// in a given string.
#include <iostream>
#include <cstring>
using namespace std;
 
int main()
{
    char str[] = "My name is Ayush";
    char* ch = strchr(str, 'a');
    cout << ch - str + 1;
    return 0;
}
Producción

5

La función strchr() también se puede utilizar para comprobar la presencia de un carácter en una string. La entrada consiste en un carácter que queremos verificar, si existe en la string. 
Ejemplo:  Verifiquemos si los caracteres A y z están presentes en la string – “Mi nombre es Ayush” 

Entrada: str[] = ‘Mi nombre es Ayush’, 
        ch1 = ‘A’, ch2 = ‘z’
Salida: A está presente en la string
         z no está presente en la string

Algoritmo 
1. Pase la string dada en la función strchr() con el carácter como segundo parámetro y verifique si el valor devuelto no es nulo 
2. Si la función devuelve un valor NULL, esto significa que la string no contiene el carácter, entonces, imprima la declaración requerida. 
3. De lo contrario, si la función no devuelve un valor NULL, esto significa que la string contiene el carácter, por lo tanto, imprima la declaración requerida.

A continuación se muestra la implementación del algoritmo anterior:

CPP

// CPP program to demonstrate working of strchr()
#include <iostream>
#include <cstring>
using namespace std;
// Driver code
int main()
{
    char str[] = "My name is Ayush";
    char ch = 'A', ch2 = 'z';
    if (strchr(str, ch) != NULL)
        cout << ch << " "
             << "is present in string" << endl;
    else
        cout << ch << " "
             << "is not present in string" << endl;
    if (strchr(str, ch2) != NULL)
        cout << ch2 << " "
             << "is present in string" << endl;
    else
        cout << ch2 << " "
             << "is not present in string" << endl;
    return 0;
}
Producción

A is present in string
z is not present in string

La función strchr() se puede usar para encontrar la ruta de directorio absoluta para Linux: (Contribuido por Ekta_nehwal )

Ejemplos: 

Entrada: /inicio/prueba/muestra
Salida: /inicio/prueba

Algoritmo: 

  1. Encuentre la posición del último «/» en la ruta del directorio usando strrchr.
  2. Reemplace la ocurrencia con el carácter NULL.

A continuación se muestra la implementación del algoritmo anterior, básicamente estamos encontrando la posición de / y luego cambiándola a \0 (nula).

C

// C program to find directory path
#include <string.h>
#include<stdio.h>
   
int main()
{
   char string[]={"/home/test/sample"};
   int len;
     
    //position of last char
    char* pos;
 
    // save length of string
    len = strlen(string);
 
    // Find the last character with
    pos = strrchr(string,'/') ;
    printf("%s\n",string);
 
    // replace last occurrence of / with NULL character.
    *pos='\0';                 
    printf("%s\n",string);
 
    return 0;
}
Producción

/home/test/sample
/home/test

Este artículo es una contribución de Ayush Saxena . 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 *