C/Visual C - TAMAÑO DE UNA CADENA DE CARACTERES

   
Vista:

TAMAÑO DE UNA CADENA DE CARACTERES

Publicado por edin (3 intervenciones) el 19/06/2008 16:47:56
Hola a todos, tengo el siguiente codigo:

#include <iostream.h>
#include <stdio.h>
#include <conio.h>
int main(){
char cad1[ ]="Hola";
int val=0;
return 0;
}

Mi pregunta es el arreglo "cad1" que declaré, automaticamente tiene un tamaño de 5 (0,1,2,3,4) por la signacion de la palabra "hola"; pero tengo entendido que la posición 0 no la ocupa, existe alguna función en C, que me devuelva el tamaño del arreglo, en este caso yo se que el tamaño es 5, pero si necesito una función que me devuelva ese valor, espero me ayuden. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:TAMAÑO DE UNA CADENA DE CARACTERES

Publicado por SuperIndio (11 intervenciones) el 19/06/2008 20:43:45
Probaste con sizeof(cad1)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:TAMAÑO DE UNA CADENA DE CARACTERES

Publicado por mix9532 (5 intervenciones) el 20/06/2008 18:15:56
puedes probar tambien con lo sigueinte

int tamanio;
tamanio = strlen(cadena);

donde la funcion strlen devuelve el tamaño de la variable cadena es decir si esta inicializada esa cadena con la palabra HOLA, devolvera 4. creo ke debes añadir la libreria cstrig para utilizar esa funcion, espero te sirva, saludos, xaooo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Aqui se ocupa todo!!!!

Publicado por igor (22 intervenciones) el 03/07/2008 22:58:58
La explicación de mix9532 es muy correcta, la función strlen() devuelve la longitud de una cadena. Exactamente lo que hace es recorrer la cadena desde la posición 0 buscando el caracter de fin de cadena o NULL como más se le conoce.

Edin, aunque ya tienes la respuesta, te explico algunas cosas importantisimas:

Los textos en C/C++ se almacenan como cadenas de caracteres en arrays de char. Estos arrays son como cualquier otro array. La diferencia está en que el último caracter del array debe ser uno especial (NULL) que indica el final del texto. Esto supone que siempre hay que reservar una posición de más para cualquier texto. Ejemplo:

char Texto[5] = "Hola";

En memoria quedaría lo siguiente
Texto[0]=H
Texto[1]=o
Texto[2]=l
Texto[3]=a
Texto[4]=NULL

Solo 2 Aclaraciones muy importantes.

Es MUY importante que se reserve 1 caracter más siempre, porque sino escribiremos el NULL en lugares reservados para otras variables, o incluso para el propio programa. Nada de que la posición 0 no se usa, la última posición para el NULL es la verdadera razón, díselo al que te lo explicó mal, para que no siga diciendo barbaridades.

En la declaración el número 5 hace referencia al número de caracteres reservados (del 0 al 4), NO a la última posición del array. Es muy importante saber que memoria estamos utilizando para no sobrepasar los límites.

Espero haber servido de ayuda para todos los que quieren programar en C.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar