Cadena de caracteres: --------------------- 1.- Declara una variable en un programa principal donde posteriormente podamos almacenar una cadena de hasta 100 caracteres. 2.- Inicializa la variable con la cadena de caracteres "Hola Mundo!". 2.1- En el momento de la declaración 2.2- Después de la declaración en el propio programa. 2.3- Leyéndolo de teclado carácter a carácter hasta que te introduzcan un return. 2.4- Con la función gets. 2.5- Con el scanf y el formato %s ¿Qué sucede cuando se intenta leer con el scanf? Probar con formato "%[^\n]%*c" . 3.- C1 es un cadena de caracteres que ha sido inicializada correctamente. Cómo averiguarías su longitud sin utilizar en el código de tu programa la siguiente función: int lon; lon = strlen (C1); printf ("Longitud de la cadena %s es %d\n", C1, lon); Escribe el código para averiguar el tamaño. 2.- Escribe por pantalla la anterior cadena de caracteres. 2.3- Escribiendo carácter a carácter hasta el final de la cadena. Es esto correcto? for (i=0; i<'\0'; i++) printf("%s",C1[i]); 2.4- Con la función puts. 2.5- Con el printf y el formato %s 4.- La cadena de caracteres "Hola" es alfabéticamente ... a/que "Juanjo". - Más Grande? - Más Pequeña? - Igual? 5.- Se quiere comparar dos cadenas de caracteres llamadas c1 y c2 en un programa principal que han sido inicializadas correctamente. Dime si es correcto o no? a) if (c1c2) printf("%s es mayor que %s\n", c1, c2); b) if (strcmp(c1, c2)==0) printf("%s es igual que %s\n", c1, c2); 6.- Escribe una función que devuelva 1 si de las dos cadenas que le pasamos como parámetros, la primera es mayor que la segunda. Devuelva 0 en otro caso. 7.- Escribe una función que devuelva 1 si es menor. Devuelva 0 en otro caso. 8.- Escribe una función que devuelva 1 si son iguales. Devuelva 0 en otro caso. 9.- Escribe una función que devuelva un valor menor que 0 si es menor, igual a 0 si son iguales, y mayor que 0 si es mayor. 10. Se quiere copiar una cadena de caracteres C1 a C2, machacando lo que hubiera dentro de C2. Es esto correcto? por qué? C1 = C2; Es esto correcto? por qué? C2 = C1; Si ninguna de las anteriores no es correcto cómo lo harías con una función creada por ti sin utilizar la función strcpy. Nota: Para hacerlo con strcpy strcpy (C2, C1); /* Esto en el programa principal */ Tambien se puede usar, como el resto de funciones para copiar constantes. strcpy (C2, "Hola"); 11. Se quiere concatenar dos cadenas de caracteres, C1 y C2 que debes inicializar previamente a "Hola" y " Adios" respectivamente. La cadena concatenada "Hola Adios" se tiene que dejar en C1. Cómo lo harías utilizando la función strcat? Cómo lo harías sin utilizar la función strcat? 12. Se quiere concatenar dos cadenas de caracteres, C1 y C2 que debes inicializar previamente a "Hola" y " Adios" respectivamente. La cadena concatenada "Hola Adios" se tiene que dejar en C2. Cómo lo harías? Puedes utilizar las funciones y variables que quieras. 13. Leed una frase de teclado y decidme si la frase es palíndroma o no, es decir si se lee igual de principio a fin que de fin a principio. la frase "cac" es palíndroma. la frase "jander" no es palíndroma. 14. Haced un programa que lea una frase de teclado (se guarda en una cadena de caracteres), elimine los espacios de la cadena de caracteres y luego la escriba por pantalla. Debéis hacedla de dos formas: a) utilizando una cadena auxiliar. b) sin utilizar una cadena auxiliar. 15. Tengo una función que se declara de la siguiente forma: int holahola ( char c1[] ) { printf("%s\n",c1); } es correcto el siguiente programa? si no fuera correcto que quitarías para que fuera correcto? En cualquier caso, con las cosas correctas, que haría el programa? void main () { char pepitogrillo[10]; char car='a'; holahola("Hola como estamos\n"); gets(pepitogrillo); holahola("pepitogrillo"); gets(pepitogrillo); holahola(pepitogrillo); holahola(car); }