int strnchr( const char * cadena, int carácter );


Retorna:

 -1 // Si no se encontraron los carácteres dentro de la cadena.
+n // Si uno de los carácteres se encontró en la posición n de la cadena.

Descripción:

Busca un carácter en una cadena de texto. Se recibe la cadena como primer parámetro y, como segundo, un carácter en
un literal (entre comillas).

Esta función determinará si la cadena contiene algun de dichos carácteres y, en caso afirmativo, indicará en que posición aparece el carácter dentro de la cadena (de 0 en adelante). En caso de aparecer el carácter varias veces, la función siempre retornará la posición primera.


char micadena[50]="AEIOU";
int posicion;

MAIN_PROGRAM_CDIV

BEGIN_PROGRAM
  // Definimos el modo gráfico
  set_gfx(GFX_AUTODETECT_WINDOWED);

  // Definimos la resolución
  set_mode(m640x480);

  write(0,0,0,0,"Primera vocal de <micadena> en la posición:");

  posicion = strnchr(micadena,'I');

  write_int(0,0,10,0,OFFSET posicion);
  LOOP
   FRAME;
END_PROGRAM

En este ejemplo se utiliza la función strnchr() para que determine que la vocal 'I' de micadena se encuentra en la posición 2 de dicha cadena.

Siempre se puede acceder a los carácteres de un dato de tipo (char *) como si este fuera una tabla de carácteres. Por ejemplo, para sustituir en el dato micadena del ejemplo anterior, el carácter 'I' por un carácter '-' se podría utilizar la siguiente sentencia:

 micadena[3] = '-';

Para convertir un carácter contenido en un literal en su valor ordinal (ASCII) se utiliza la función chartoint().

Para determinar si una cadena esta completamente contenida en otra (si aparece como una subcadena dentro de la misma), se debe utilizar la función strnstr().


Ver: chartoint() - upper() - lower() - strdel() - strcpy() - strcat() - strlen() - strcmp() - strnchr()  - strset()