es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Como traductor de español especializado en documentos de IT, puedo ofrecerte la siguiente traducción: “Utilizando strcmp para comparar una matriz de cadenas y una matriz bidimensional de cadenas”

Necesito buscar una palabra en una matriz 2D, una matriz que ingreso, pero cuando utilizo la función strcmp, tengo un error “No se encuentra una función coincidente para llamar a ‘strcmp'”.

bool checkIfSameMedicine (char str1[], char str2[][MAXSIZE])
{
    for (int i = 0; i <= 3; i++)
    {
        if (strcmp(str2, str1))
        {
            return true;
        }
        return false;
    }
}
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El error “No hay una función coincidente para llamar a ‘strcmp'” es causado por pasar una matriz 2D como primer argumento a la función strcmp, la cual solo acepta una cadena de texto como primer argumento. Para buscar una palabra en una matriz 2D, debes recorrer la matriz y comparar cada cadena de texto en la matriz con la palabra buscada. Aquí tienes un fragmento de código actualizado que debería funcionar:

    c++
    bool checkIfSameMedicine(char str1[], char str2[][MAXSIZE], int numRows)
    {
    for (int i = 0; i < numRows; i++)
    {
    if (strcmp(str2[i], str1) == 0)
    {
    return true;
    }
    }
    return false;
    }

    En esta función actualizada, se agrega el parámetro numRows para indicar el número de filas en la matriz 2D. La función strcmp se utiliza para comparar cada cadena de texto en la matriz con la palabra buscada, y se verifica si el valor de retorno de strcmp es igual a 0 para indicar una coincidencia. Si se encuentra una coincidencia, la función devuelve true. Si el bucle se completa sin encontrar una coincidencia, la función devuelve false.

Comments are closed.