principales - ¿Qué archivo de cabecera C++ declara strlen?
librerias en c++ (5)
¿A qué biblioteca pertenece strlen ()? ¿Pertenece al cstring? o cadena?
Ninguno. cstring
string
y la string
no son bibliotecas , son archivos de encabezado que definen la interfaz para varias funciones y clases.
El estándar del lenguaje C dice que la función strlen
está declarada en el archivo de encabezado <string.h>
. En C ++, la inclusión de <string.h>
coloca strlen
en el espacio de nombres global, mientras que la inclusión de <cstring>
coloca a strlen
en el std
nombres strlen
.
La implementación real de la función strlen
encuentra en la biblioteca estándar de C (también conocida como libc
o CRT
en ciertas plataformas). Normalmente, esto está vinculado con su ejecutable en el momento del enlace.
¿Por qué funciona sin incluir la cadena de la biblioteca o el cstring?
En su compilador y cadena de herramientas en particular, da la casualidad de que el archivo de cabecera <iostream>
incluye <cstring>
en él, lo que significa que cualquier código que incluya el primero también obtiene el último de forma gratuita. Este es un detalle de implementación y no se debe confiar en él: si compila su código con otro compilador, puede encontrarse repentinamente en un mar de errores de compilación.
Lo correcto es incluir también <cstring>
aquí; Aunque no es necesario con su compilador particular, puede ser necesario con otros compiladores.
¿A qué biblioteca pertenece strlen()
?
¿Pertenece al cstring
? o string
?
Probé el siguiente código, y funciona:
include <iostream>
using namespace std;
//withou include<string.h>
int main() {
char * str="abc";
cout<<strlen(str);
}
Puse str
igual a 3 y doy la respuesta correcta 3.
¿Por qué funciona sin incluir la cadena de la biblioteca o el cstring?
¿Debo incluir cadenas o cuerdas allí? string.h?
La función strlen () se declara en el archivo de cabecera string.h
Para usar strlen () debe incluir el archivo de encabezado de cadena.
#include <cstring>
Esta fue la respuesta que estaba buscando, pero no encontré una respuesta directa aquí.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char *pointer1="Idle hands are the devil''s workshop.";
int length;
length=strlen(pointer1);
char *pointer2;
pointer2=new char(length+1);
strcpy(pointer2,pointer1);
cout<<"pointer 2:"<<pointer2;
delete[] pointer2;
return 0;
}
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string = "Hello World";
printf("%lu/n", (unsigned long)strlen(string));
return 0;
}
Este programa imprimirá el valor 11, que es la longitud de la cadena "Hello World". Las cadenas de caracteres se almacenan en una matriz de un tipo de datos llamado char. El final de una cadena se encuentra al buscar el primer carácter nulo en la matriz.
De la biblioteca de GNU C