Cómo utilizar punteros y cadenas de programación c

El lenguaje de programación C carece de una variable de cadena, pero tiene la matriz de caracteres, que es efectivamente lo mismo. Como una matriz, una cadena en C puede ser completamente retorcido, un par de torsión, y abusado por el uso de punteros. Es un tema mucho más interesante que jugar con matrices numéricas.

Cómo utilizar punteros a mostrar una cadena

Lo más probable es familiarizarse con la visualización de una cadena en C, probablemente, ya sea mediante el uso de la función de los puts () o printf (). Cuerdas, también, se pueden mostrar un carácter perseverante la vez a través de una matriz.

HOLA, CADENA

#include int main () {muestra char [] = "De donde vendrá mi socorro? N"Índice -INT = 0-tiempo (la muestra [índice] = ``) {putchar (muestra [índice]) - Índice ++ -} return (0) -}

El código que se muestra en Hola, cadena de código C es totalmente legítima, válida para crear un programa que muestra una cadena. Pero no utiliza punteros, lo hace?

Ejercicio 1: Modificar el código fuente de Hola, cuerdas, en sustitución de la notación de matriz con la notación de puntero. Eliminar la variable de índice. Es necesario crear e inicializar una variable puntero.

La evaluación del bucle while en Hola, cuerdas es redundante. El carácter nulo evalúa como falso. Por lo que la evaluación podría ser reescrita como

mientras que (muestra [índice])

Mientras el elemento de matriz que se hace referencia por la muestra [índice] no es un carácter nulo, el bucle hace girar.

Video: Tutorial Programacion en C nº37 : Punteros a Cadenas

ejercicio 2: Editar Evaluación del bucle while en su solución para el ejercicio 1, eliminando la comparación redundante.

Ejercicio 3: Seguir trabajando en su código, y esta vez a eliminar las declaraciones en el bucle while. Colocar toda la acción en la evaluación de la sentencia while. En aras de referencia, la función putchar () devuelve el carácter que se muestra.

¿Cómo declarar una cadena mediante el uso de un puntero

He aquí un truco miedo se puede tirar el uso de punteros, uno que viene con un bote lleno de precaución. Consideremos un puntero anuncia una cadena.

Un PUNTERO ANUNCIA UNA CADENA

#include int main () {char * muestra = "De donde vendrá mi socorro? N"-mientras (putchar (* Muestra ++)) - retorno (0) -}

En un puntero anuncia una cadena, la cadena que se muestra es creado por inicializar un puntero. Es una construcción que parece extraño, pero es algo que usted es testigo a menudo en código C, en particular con cuerdas. (No se puede utilizar esta convención para inicializar una matriz numérica.)

Video: 90. Programación en C++ || Punteros || Ejercicio - Contar vocales de un nombre con punteros

ejercicio 4: Copiar el código fuente de un puntero anuncia una cadena en su editor. Generar y ejecutar.

El bote lleno de precaución en un puntero anuncia una cadena, y en cualquier momento que usar un puntero para declarar directamente una cuerda, es que la variable puntero no puede ser manipulado o de lo contrario se pierde la cadena.

Por ejemplo, en un puntero anuncia una cadena, el muestra variable se utiliza en la línea 7 al paso a través de la cadena como parte de la función putchar (). Vaya. Si wantto utilizar muestra más adelante en el código, que ya no hacer referencia al inicio de la cadena.

Cuando se declara una cadena mediante el uso de un puntero, no te metas con la variable puntero en otra parte del código.

La solución es guardar la dirección inicial del puntero o simplemente utilizar un segundo puntero a trabajar en la cadena.

ejercicio 5: Fijar el código en un puntero anuncia una cadena de modo que el muestra el valor de la variable se guarda antes de ejecutar el bucle while y luego se restaura después. Añadir una declaración pone (muestra) con el código después del bucle mientras se realiza la ejecución, para demostrar que dirección original de la variable se restablece.

Cómo ordenar cadenas

Tomando lo que sabe de la clasificación en el lenguaje C, es probable que pueda elaborar un programa de la cadena de clasificación decente. O, como mínimo, se puede explicar cómo se hace. ¡Eso es genial! Pero es mucho trabajo.

¿Qué es mejor cuando se trata de ordenar las cadenas no es para ordenar las cadenas en absoluto. No, en cambio, se ordena una matriz de punteros que hacen referencia a las cuerdas. Ordenando Strings, intento inicial muestra un ejemplo.

CLASIFICACION DE CADENAS, intento inicial

#include int main () {char * fruta [] = {"albaricoque","plátano","piña","manzana","caqui","Pera","arándano"} -char * temp-int a, b, x-para (a = 0-alt; 6-a ++) para (b = a + 1-BLT; 7-b ++) si (* (fruta + a) gt; * (Fruta + b)) {temp = * (fruta + a) - * (fruta + a) = * (fruta + b) - * (fruta + b) = TEMP-} para (x = 0-XLT; 7 -x ++) puts (fruta [x]) - retorno (0) -}

ejercicio 6: Escriba el código fuente de la clasificación de Cuerdas, intento inicial en su editor. Generar y ejecutar para asegurar que las cuerdas están correctamente ordenados.

Video: Desarrollando en C

Bueno, es probable que no funcionaba. Puede tener, pero si la lista está ordenada o cambia de ninguna manera, es una consecuencia no deseada y definitivamente no es repetible.

El problema está en la línea 19. No se puede comparar cadenas utilizando el gt; operador. Puede comparar los caracteres individuales y luego podría ordenar la lista sobre la base de esos personajes, pero la mayoría de los seres humanos prefieren palabras ordenados a través de toda su longitud, no sólo el primer carácter.

ejercicio 7: Modificar el código fuente, y utilizar la función strcmp () para comparar cadenas para determinar si necesitan ser cambiados.

Artículos Relacionados