elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Comparación de strings que estan en arreglos.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Comparación de strings que estan en arreglos.  (Leído 1,931 veces)
nrmc17

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Comparación de strings que estan en arreglos.
« en: 2 Diciembre 2015, 01:51 am »

Buenas caballeros, trabajando en un proyecto, que asemeja a un diccionario virtual en el que el usuario define palabras que aun no estan definidas... pero me da un error de compilación, dice cannot convert string to const char for argument 1 to int stricmp(const char*, const char*) en la linea de stricmp.

Código
  1. #include<iostream>
  2. #include<string>
  3. using namespace std;
  4. const int s=100;
  5. int c=0;
  6. bool exst=false;
  7. string A[s][2]={NULL};
  8. void comparar(string);
  9. void agregar(string);
  10. int main(){
  11. string n;
  12. as:cin.clear();
  13. cout<<"Ingrese su palabra"<<endl;
  14. getline(cin, n);
  15. comparar(n);
  16. exst=false;
  17. goto as;
  18. return 0;
  19. }
  20. void comparar(string n){
  21. for(int i=0; i<s; i++){
  22. if(0==stricmp(n, A[i][1])){
  23. cout<<A[i][2];
  24. exst=true;
  25. }
  26. }
  27. if(exst==false){
  28. agregar(n);
  29. }
  30. }
  31. void agregar(string n){
  32. string q;
  33. cin.clear();
  34. getline(cin, q);
  35. c+=1;
  36. A[c][1]=n;
  37. A[c][2]=q;
  38. }
Cualquier ayuda es agradecida :D


« Última modificación: 3 Diciembre 2015, 01:20 am por nrmc17 » En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: Comparación de strings que estan en arreglos.
« Respuesta #1 en: 2 Diciembre 2015, 06:40 am »

Pon tu código entre etiquetas GeSHI para mejorar la visibilidad tu código.

La función stricmp necesita una cadena de caracteres, pero lo que le estás dando es un objeto std::string. Para solucionarlo, tienes que "convertir" ese objeto a cadena de caracteres. Para ello, utiliza el método de la clase std::string llamado .c_str(), que te retorna la cadena de caracteres equivalente a ese std::string:

Código
  1. stricmp(objeto_string[0].c_str(), objeto_string[1].c_str());


En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
nrmc17

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Comparación de strings que estan en arreglos.
« Respuesta #2 en: 3 Diciembre 2015, 00:04 am »

Muchas gracias, me ha sido muy util tu respuesta y espero les sea util a cualquier persona que en el futuro tenga esta duda. De verdad muchas gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda comparación de strings
.NET (C#, VB.NET, ASP)
BlaineMonkey 2 2,880 Último mensaje 23 Febrero 2010, 10:29 am
por BlaineMonkey
Arreglos y apuntadores están íntimamente relacionados « 1 2 »
Programación C/C++
naderST 10 5,412 Último mensaje 15 Octubre 2011, 18:55 pm
por leogtz
Problema con if de comparación de Strings
Java
Runforyourlife 2 1,726 Último mensaje 26 Noviembre 2016, 23:30 pm
por Runforyourlife
Error en comparacion de strings.
Programación C/C++
NicolasPileci 2 2,296 Último mensaje 3 Junio 2017, 15:26 pm
por NicolasPileci
¿Cómo hacer Strings que están a cero aparecer? « 1 2 »
Ingeniería Inversa
02k0 16 14,364 Último mensaje 16 Septiembre 2017, 02:02 am
por 02k0
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines