Blogia
Kirai.Net

Truquillo en C

Este post quizás sea un poco durillo para los que no programen en C, pero os ará ver la gran potencia de la aritmética de punteros y de que forma nos puede solucionar la vida en una sola línea de código. Vamos a analizar las siguiente sentencia:



*strrchr(linea, 'n') = '0';

Sabiendo que strrchr lo que hace es buscar desde el final en la cadena pasada como primer parámetro el carácter pasado como segundo parámetro y devuelve un puntero al char de la posición donde se ha encontrado. Si miramos en el API de C encontraremos lo siguiente:



char * strrchr (const char *string, int c);

Ya podemos saber la operación que realiza la primera sentencia propuesta. Buscará en la linea la primera n desde el final y devolverá el puntero a char que apunta a esa dirección pero en la misma operación a este puntero le podremos asignar el nuevo valor 0. En definitiva como podéis observar estamos sustituyendo la última n por un 0 en una sola linea de código de C. Quizás sea mucho más sencillo hoy en día usando un metodo replace en cualquier lenguaje orientado a objetos, pero en C controlamos realmente lo que está sucediendo. En un lenguaje de alto nivel no sabemos realmente como está implementado el método replace.

0 comentarios