Pregunta:
¿Alguien me puede explicar que es un string en lenguaje C y como funciona paso a paso?
?
2016-10-17 04:17:22 UTC
¿Alguien me puede explicar que es un string en lenguaje C y como funciona paso a paso?
Seis respuestas:
-g-
2016-10-17 12:58:35 UTC
El lenguaje C no tiene el tipo de datos string. Tal vez hablas de C++.
?
2016-10-17 05:16:18 UTC
Un string o cadena es un elemento unidimensional que se caracteriza por componerse de uno o mas caracteres, cuando se compone de más de una dimensión se le conoce como matriz (O bueno encontrarás una definición como esa en algunos libros de programación estructurada, concurrente y orientada a objetos, técnicamente y en cuanto al uso es igual). En esencia se podría decir que se trata de una tabla en la que se estecifica el numero de filas y el numero de columnas que esta debe tener. En cuanto a sus usos te compartire un enlace para que puedas ver algunos usos ejemplificados: https://www.tutorialspoint.com/cplusplus/cpp_strings.htm



Espero te sea de ayuda, posiblemente mañana pueda acompletar la respuesta dándote un ejemplo propio.



Suerte
2016-10-20 00:06:42 UTC
String es una cadena de texto, una variable que contiene una cadena de texto
?
2016-10-18 11:35:25 UTC
Un string o cadena es un elemento unidimensional que se caracteriza por componerse de uno o mas caracteres, cuando se compone de más de una dimensión se le conoce como matriz (O bueno encontrarás una definición como esa en algunos libros de programación estructurada, concurrente y orientada a objetos, técnicamente y en cuanto al uso es igual)
aem
2016-10-17 07:26:28 UTC
Hola:

Un string es una cadena, o sea una consecusion de caracteres que terminan con un carracter especial llamado fin de string.

En C y C++ el string como tipo de dato no existe, ya que se hace incapié en la asignación de memoria de tamaño fijo para un dato, siendo el tipo string un tamaño variable.

Entonces para usar una cadena en C y C++ se hace de diferentes formas, o declarando en forma estática la cantidad de caracters de un arreglo que se usará como contenedor de ese string, lo que se hace de la forma char string[tamañofijo]; disponiendo asi de la capacidad de recibir una cadena de caracteres, incluyendo espacios de valor fijo -1, ya que el ultimo caracter es el fin de string '\0'

Esta forma, preasigna un lugar en la memoria se llene o no y que se ocupa en todo el transcurso del programa, generalmente se declara bajo los archivos de cabecera, para ser compartido por todas las funciones sin tener que hacer engorrosos pasajes de terminos.

La otra forma estática, es definiendo un puntero y una sucesión de elementos del mismo tipo en orden consecutivo de la forma char *string={"Mi mamá me mima"} ó por caracter char *string=['m', 'i', ' ', 'm', 'a', 'm', 'á', ' ', 'm', 'e', ' ','m', 'i', 'm', 'a'} ; con lo que se le asigna un tamaño que es el de la cadena de carqacters +1 admitiendose en algunos compiladores el puntero como vector nulo char string[]= {"mi mama me mima"};

En todos los casos, se puede individualizar una posición en el vector por su indice que arranca de 0 hasta encontrar el caracter de fin de string.

La ventaja de declarar el vector por su contenido, es que el espacio asignado se ciñe al ocupado, y esto es util para ahorrar memoria cuando el string es algo que no se debe llenar ni cambiar durante el programa.

La otra forma de declaración, es la dinámica, la que se hace en la ejecución del programa mediante un operador de asignacion de memoria, como el malloc o calloc en C y el new en c++ aunque tambien se pueden usar los primeros, no se usan por su mas complicada declaración.

Para crear un vector en forma dinámica, lo primero es crear un puntero del mismo tipo de dato, luego mediante new asignarle la cantidad de memoria segun la cantidad de caracteres que pensamos poner

char *p

p= new char[30];

de esta manera, tenemos un vector creado dinamicamente para 29 caracteres mas 1 de fin de string para una cadena, que si usamos y ya no lo necesitamos, liberamos el espacio ocupado en la memoria mediante delete(p); y mediante free para los antiguos asignadores malloc y calloc

Ventaja, no ocupar memoria para algo que no se usará mas durante el programa, complicacion: que el vector se crea privado en el ambito donde se creó, y que para acceder a él, hay que hacer pasajes de terminos entre la función o el main y el ambito donde se creó, y eso lo complica bastante.

En el caso, de que se quiera analizar por ejemplo de un texto de 10000 caracteres la cantidad de espacios, ó vocales o cuantas veces se repite una cosa o la otra, esto es lo mas adecuado, ya que se crea el vector, se llena desde el archivo que contiene el texto se analiza y solo se pasan las conclusiones de lo que se quería hacer con el vector, luego borrandolo para desocupar la memoria, esto hace que cuando creamos una funcion debemos tener en cuenta que vamos a devolver o si vamos a pasar resultados mediante variables globales, ya que no contaremos con el vector para un posterior análisis.

La libreria string.h permite operar con las cadenas (los string) de manera sencilla, aunque no es una libreria económica en ocupar recursos ya que tiene que hacer basante trabajo para una sola orden, que se puede desarrollar mediante stdio.h sin muchas complicaciones

Este archivo de cabecera (el stdio.h) mediante sprintf(destino, formato, contenido); permite manipular las cadenas con la misma sencillez que maneja los flujos (stream) para acceder a archivos de disco y como consume mucho menos recursos hace que nuestro programa corra más rápido (cosa que se nota cuando la cantidad de procesos a realizar es muy grande), pero sobre todo, porque permite ver el proceso por el cual se hace paso a paso lo que se busca, lo cual mantiene despierto el espiritu de la programacion, (cosa a la que no contribuye el mas alto nivel de programación, ya que perdemos nocion de lo que se hace y como se hace).

Por ejemplo, para saber la longitud de carateres ocupados de una cadena, mediante la libreria string.h tenemos la orden length(cadena) que devuelve un entero que es la cantidad de caracteres de relleno sin contar el fin de string, sin la libreria, basta hacer un for despues de llenada la cadena mediante gets(string); de stdio.h y recorrerla desde 0 hasta que cuando encuentre el caracter de fin de string, el valor en que queda la variable del for es la cantidad de caracteres que tienen la cadena

for(i=0; y<100; i++) if(strin[i=='\0') break;

para toda funcion de la libreria string, se puede hacer mediante un no muy extenso codigo usando lo estandar, por lo que yo aconsejo, que se haga de la ultima forma, por los motivos que antes enuncié.



Saludos

Antonio
?
2016-10-17 05:39:17 UTC
pones en internet: descargar minecraft premium


Este contenido se publicó originalmente en Y! Answers, un sitio web de preguntas y respuestas que se cerró en 2021.
Loading...