Cadena de retorno de la función C ++

Cadena de retorno de la función C ++
Una forma de identificar una serie de cadenas como miembro de clase se especifica en la definición de C ++. La clase de cadena contiene atributos como un flujo de bits, con la capacidad de manejar un carácter de un solo byte. En C ++, podemos recuperar una cadena, pero aún debemos examinar cómo se conservará y transferirá la cadena. Debido a que C ++ devuelve elementos en el montón, que tiene una cantidad finita de espacio, proporcionar componentes inmensos inducirá problemas de desbordamiento de pila que podrían dar como resultado errores y defectos de seguridad.

Si podemos devolver un objeto std :: string de la biblioteca de plantilla estándar, podemos proporcionar un puntero constante a la cadena. Determinar que la cadena se retiene en la memoria estática. Este artículo describe varios enfoques para devolver una cadena de una función C ++.

Utilice la técnica std :: string function ()

El retorno por valor es la técnica preferible al recuperar datos de cadena de las funciones. Haber devuelto cadenas relativamente grandes por datos es eficiente debido al constructor de movimiento en la clase STD :: String String. Se ha dicho que un elemento ha reubicado el contenido semántico si contiene un constructor de movimiento. Move-Semantics sugiere que los datos no se duplican a una nueva posición cuando la función regresa, lo que lleva al tiempo de finalización de la función eficiente.

#incluir
#incluir
#incluir
usando std :: cout; usando std :: endl;
usando std :: string; usando std :: reverse;
String Revstring (String & S)
String Rev (s.rbegin (), S.desgarrar());
regresar rev;

int main ()
String str = "Me encanta jugar al bádminton";
cout << str << endl;
cout << RevString(str) << endl;
return exit_success;

Al inicio del programa, tenemos que incluir tres archivos de encabezado. Para funciones de entrada y salida. Especifica un conjunto de funciones destinadas a usarse en grupos de elementos. Cualquier secuencia de elementos que se puedan recuperar utilizando iteradores o referencias se considera un rango. Como su nombre lo indica, se están utilizando para operar con un conjunto de números. Llamamos a la función estándar de 'cout' para obtener salida, 'endl' estándar, que muestra que el programa procede de la siguiente línea, estándar 'cadena', que contiene las funcionalidades de la cadena y el 'reverso' estándar que se utiliza para adquirir el Cadena en el orden inverso.

Ahora se llama a la función 'revstring ()'. Aquí pasamos la cadena definida como un parámetro de esta función. Aplicamos funciones rbegin () y rend (). El rbegin () es una función intrínseca C ++ que proporciona un iterador invertido que se refiere al último componente de la lista. La rend () es una función C ++ incorporada utilizada para devolver un iterador invertido que conduce al punto antes del inicio de la lista. Ingresamos la instrucción 'return Rev' para obtener el reverso de la cadena.

Aplicamos 'Endl', que muestra que el cursor se mueve a la siguiente línea del código. Para imprimir el orden invertido de la cadena especificada, hemos utilizado 'revsting'. Esta función contiene la cadena ingresada como argumento. Al final, se aplica 'exit_success' para terminar el programa.

Utilice la técnica std :: string & function ()

Esta metodología permite el uso del retorno mediante el formato de referencia, que sería una forma diferente de resolver esta situación. Aunque el retorno de la ilusión es el método más efectivo para recuperar estructuras o clases masivas, esto no implicaría ningún parámetro adicional en este escenario en comparación con la estrategia anterior. Es importante recordar que no utilizaríamos una referencia para sustituir una variable global definida en la función; Esto dará como resultado una referencia persistente.

#incluir
#incluir
#incluir
usando std :: cout; usando std :: endl;
usando std :: string; usando std :: reverse;
String & Revstr (String & S)
reverso (s.begin (), S.fin());
devoluciones;

int main ()
cadena str = "Tecnología de la información";
cout << str << endl;
cout << RevStr(str) << endl;
return exit_success;

En primer lugar, integramos tres bibliotecas>, y para funcionalidades específicas. Utilizamos la función estándar de 'cout' para recuperar la salida, 'Endl' estándar para indicar que el programa continúa en la siguiente línea, estándar 'cadena' para retener las funciones de la cadena y el 'reverso' estándar para obtener la cadena en orden inverso. El puntero de la cadena 'Revstr ()' ahora se está utilizando. La cadena especificada se proporciona como un parámetro para este método. Llamamos a las funciones begin () y final ().

Empleamos la declaración 'return s' para obtener el inverso de la cadena. Ahora se invocará la función principal (). Aquí es donde se declara la lógica del programa. Declaramos una cadena 'Tecnología de la información'. Esta cadena se guarda en la variable 'str'. La declaración 'cout' se utilizaría para adquirir la impresión de la cadena. También usamos 'Endl', que denota que el cursor cambiará a la nueva línea de código. 'Revstring' se ha utilizado para mostrar la cadena requerida en orden invertido.

La cadena especificada se pasa como un parámetro para este método. Por último, el programa terminó con el éxito de la salida del comando.'

Utilizar el método de matriz de char

Del mismo modo, podríamos recuperar una cadena de una función utilizando una matriz de caracteres. La clase de cadena emplea una matriz persistente para tener caracteres. Al invocar el método incorporado, podemos obtener una referencia al primer miembro del personaje de esa matriz.

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

String str1 = "Me encanta jugar al bádminton";
cadena str2 = "Tecnología de la información";
Char Ch [50];
str1.copia (CH, 13, 0);
cout << "The new copied character array is : ";
cout << ch << endl;
cout << "Before swapping the first string is : ";
cout << str1 << endl;
cout << "Before swapping the second string is : ";
cout << str2 << endl;
str1.intercambio (str2);
cout << "After swapping the first string is : ";
cout << str1 << endl;
cout << "After swapping the second string is : ";
cout << str2 << endl;
regresar 0;

Aquí presentamos archivos de encabezado y para usar la clase de cadena. Junto con esto, hemos estado usando un espacio de nombres estándar. Empleamos la función principal () y comenzamos a codificar en el cuerpo de esta función. Inicializamos dos cuerdas. La primera cadena se mantiene en la variable 'str1', y la segunda cadena se almacena en la variable 'str2'. La matriz de personajes ahora se declara.

Especificamos el tamaño de la matriz de personajes. Se llama a la función Copy (). La subcadena en la matriz de caracteres específicas especificadas en los parámetros se copia mediante este método. Los tres argumentos son la matriz de caracteres objetivo, la longitud que se duplicará y el punto de partida en la cadena para iniciar la duplicación. Queremos mostrar esta matriz de personajes utilizando la declaración 'Cout'.

Se han mostrado ambas cuerdas antes de intercambiar utilizando la declaración 'Cout'. Aplicamos la función swap (), que intercambia un contenido de cadena con otro. Después de intercambiar, entramos nuevamente en 'Cout' para obtener las cuerdas intercambiadas. Aplicar 'return 0' para finalizar el código.

Conclusión

La clase de cadena en la biblioteca C ++ estándar incluye todos los métodos enumerados anteriormente. En este artículo, hemos visto una variedad de metodologías para devolver una cadena de una función en C++. Se han utilizado varias instancias para describir las metodologías, incluida la técnica STD :: String & Function () y la técnica STD :: String Function ().