“Conocimiento Programación>C /C + + Programming

Cómo crear una cadena dinámica en C + +

2016/3/12
tipos de datos dinámicos no tienen un tamaño fijo. Cuando un ordenador se almacena un número, se utiliza el mismo número de bytes para almacenar el número " 0 " y el número " 20000 ". Pero trata de almacenar una frase y el panorama cambia dramáticamente. Dado que cada frase tiene una longitud diferente , la memoria utilizada para almacenar la frase tiene que cambiar de forma dinámica . Norma C no incluía un tipo de datos de cadena , y el diseño de un tipo de datos de cadena dinámica (o clase de cadena ) se ha convertido en casi un rito de paso de cualquier nuevo programador de C + C /+ . Cosas que necesitará de computadora
C + + Compiler (recomendado : Visual C + + Express)
Ver Más instrucciones
Diseño String Clase
1

Visualice las características de la clase string . La cadena debe tener lo siguiente: .

Tamaño dinámico ( cambios con la entrada del usuario , o cesión )

ser capaz de saber el tamaño de su cadena

salida de la cadena. almacenada en la memoria.

tienda el tamaño.

tienda el primer carácter de nuestra cadena (ya que es dinámico, no se sabe dónde termina. )
2 < p> independiente que cuenta de la clase de cadena son la información ( o datos) y cuáles son las funciones . Por lo general, todo lo que implica la acción es una función. Desde nuestra lista: .

Tamaño dinámico - > Función basado en cómo se construye una cadena

saber el tamaño de la cadena -> Función

salida del . string - . > Función

tienda del tamaño - . > Datos /información

tienda el principio de la cadena - . > datos /información
3

definir el papel de cada función, y el tipo de datos de los miembros de su clase en términos simples. En la lista anterior :

dinámico Size - Función - Construye la cadena

Saber el tamaño - Función - Devoluciones tamaño de la cadena

salida de la cadena - Función - Devuelve el . . contenido de la cadena

tienda del tamaño - . datos /información - debe ser un número entero positivo

tienda el principio de la cadena - . datos /información - . un personaje

Implementación de la clase String - Encabezado del archivo
4

Crear un archivo de encabezado denominado mystring.h (File - > Add - > File Header ) . Un archivo de cabecera es como un índice para el código.
5

Defina su clase en el archivo de cabecera . Este es el código:

micadena clase {
6

Crear funciones públicas para hacer frente a todas las funciones de su diseño. Este es el código:

público :

micadena (); //crea una cadena vacía

micadena (const char * ) //crea e inicializa la cadena de un valor ( entre paréntesis )

~ micadena (); //desasigna recursos de memoria dinámica

getSize int (); //nos muestra el tamaño de la cadena

char * outputmystring (); //imprime la cadena
7

Crear miembros de datos privados para almacenar los datos de la cadena . Este es el código:

privada :

int _size ; //almacena la cadena de tamaño

char * _mystr ; /* este es un miembro de datos que apunta a la primera carácter de la cadena . Si sabemos que el primer carácter y el tamaño de la cadena , se puede acceder a todos sus caracteres * /foto

}
8

Escriba su código completo archivo de cabecera (se puede copiar y pegar desde aquí) :

/* mystring.h * /foto

clase micadena {

público :

micadena ();

micadena (const char * ) ;

~ micadena ();

getSize int ();

char * outputmystring ();

privada:

int _size ;

char * _mystr ;

}
aplicación de la clase String - archivo de código
9

Crear un archivo CPP juego llamado mystring.cpp ( archivo-> Añadir -> cpp - archivo vacío ) . Aquí, se incluyen las definiciones de la función en el archivo de cabecera mystring.h . Al igual que un libro, archivos de cabecera almacenan los principales tittles y cpp archivos almacenan los contenidos y definiciones de cada tilde .
10

Incluya el cstring y bibliotecas iostream . Este es el código:

/* mystring.cpp * /foto

# include

# include
11 < p> Definir las funciones de construcción (construcción vacía y la construcción de parámetros) . Aquí está el código :

micadena :: micadena () /constructor /Empty

{

_size = 0 ;

_mystr = 0 ;

}

:: MiCadena MiCadena ( const char * str ) /* construye e inicializa cadena en un valor * /foto


{ if (! str)

{ _size = 0 ; _mystr = 0 ;} /* si no hay valor , cadena está vacía * /foto

más

{ _size = strlen ( cadena) ;

_string = new char [ _size 1 ] ; /* esta es nuestra asignación de memoria dinámica , basada en el tamaño del parámetro * /foto

strcopy ( _string , str ) ;
< p >} }


12

Definir la función de destructor. Esta función se utiliza para de- asignar la memoria dinámica. Cada vez que la memoria utilizada cambios , el equipo debe saber que puede usar esa parte de la memoria para otros usos; este proceso se denomina de- asignación . El código :

micadena :: ~ micadena

{ delete [ ] _mystr ;} /* desasigna nuestra dinámica de memoria * /
13

Definir la función para volver el tamaño de la cadena y la salida de la cadena. El tamaño es sencillo. Simplemente mostrar el valor de _size :

int micadena :: getSize () {return ( _size ) ;}

Para emitir la cadena, que es la salida de cada personaje hasta llegar a la final de la string ( que pasa a ser el valor de _size ) :

void micadena :: outputmystring ()

{for (int cuenta = 0 ; cuenta == tamaño ; cuenta + +)
< p > { cout << _mystr [cuenta] ;}

cout << endl ;}
14

Aquí está el código completo para mystring.cpp :

/* mystring.cpp * /foto

# include

# include

micadena :: micadena () //Vaciar constructor

{

_size = 0 ;

_mystr = 0 ; }


micadena :: micadena (const char * str ) /* construye e inicializa cadena en un valor * /foto


{ if ( str )

{ _size = 0 ; ! _mystr = 0 ;} /* si no hay valor , cadena está vacía * /foto

más

{ _size = strlen ( cadena) ;

_string = new char [ _size 1 ] ; /* esta es nuestra dinámica asignación de memoria, según el tamaño del parámetro * /foto

strcopy ( _string , str ) ;

}

}

micadena :: ~ micadena

{ delete [ ] _mystr ;} /* desasigna nuestra dinámica de memoria * /foto

int MyString :: getSize () {return ( _size ) ;}

void micadena : : outputmystring ()

{for (int cuenta = 0 ; cuenta == tamaño ; cuenta + + )

{ cout << _mystr [cuenta] ;}

cout << endl ;}

C /C + + Programming
¿Qué es la escritura en los cachés de memoria?
Cómo Fundido en C desde objetos de fecha y hora
Cómo Loop rellenar una matriz de 2 dimensiones en C + +
Cómo leer MDB para ODBC
La memoria se utiliza para almacenar temporalmente las instrucciones del programa.
Cómo enseñar a sí mismo de programación de Windows CE en 24 horas
Cómo codificar un Screensaver
Impulsar Tutorial multithreading
Conocimiento de la computadora © http://www.ordenador.online