UTNianos

Versión completa: biblioteca string.h en c++
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas, sin rodeos:

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
char nombre[10];
strcpy(nombre, "hola");
cout << "go";

return 0;
}

Me pone "'strcpy' was not declared in this scope" y con <cstring> ademas me pone una lista de cada funcion:
" '::memchr' has not been declared "
" '::memcmp' has not been declared "
...

El punto es que no puedo usar las funciones de string.h de C.
Nose como resolverlo, si hay que agregar un using a algo asi espero puedan ayudarme.
salu2.
Primero te dejo una pagina sobre cstring para que revises:

http://www.cplusplus.com/reference/cstring/

No estoy familiarizado con el uso de cstring, yo sigo usando las estandar de C pero vi la definicion en cstring. Lo unico que te puedo decir es que no te olvides que c++ esta orientado a objetos asi que capaz que necesitas crear un objeto definido en cstring. Sino la otra que se me ocurre es que las funciones similares a las de string.h puedas usarlas pero declarando el scope antes.
Por ejemplo:
cstring::strcpy(nombre, "hola");

Buscando encontre este PDF, fijate si te sirve: http://www.willydev.net/descargas/CString.pdf

Despues me fijo porque no te permite usar las funciones definidas en string.h, a mi no me trabajo ningun inconveniente; de paso pruebo un poco cstring asi veo cual puede ser el problema.

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
char nombre[10];
strcpy(nombre, "hola");
cout << "go";

return 0;
}


Te diria que es un error de instalacion de las librerias
En la instalacion no te tiro ningun error el QT? porque a mi me paso al principio que no me reconocia ni la iostream y lo reinstale y anduvo bien. Fijate.
¿Pero el = no esta sobrecargado para que se encarge de copiarte un string a otro?
¿Para que necesitarías usar las funciones de c si podes usarlo todo a la c++?
(Pregunto desde mi ignorancia claro).


#include <iostream>
#include <cstring>

using namespace std;

int main()
{
string nombre;
nombre = "Hola";
cout << nombre;

return 0;
}

rulo, strcpy copia char*, no string
Ya lo se. Por eso pregunte porque usar char[] Y strcpy cuando estas usando C++.

El overhead de usar objetos como cout para imprimir ya lo esta teniendo. Si estas en C++ me parece mas práctico usar strings y = que copiar la memoria a mano.
Sin duda que es mucho mas comodo trabajar asi.
Agradezco las respuestas a todos, al final, resulta que estaba usando una clase con el nombre "String" y como ya existia me tiraba error y bueno trate de hacer algo simple pero de todas formas me traia problemas.
Gracias y salu2.
URLs de referencia