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.

strcpy convierte un puntero de entero sin un tipo de dato.

Estoy intentando insertar un carácter en una posición específica en el array char (char *peep) pero cada vez que lo intento, obtengo un error de strcpy.

Código actual:

int main(){
    char *peep = malloc(256);

    int pos;
    char character, charToStr[2];
    charToStr[1] = '\0';

    printf("\nCharacter to insert: ");
    scanf("%c", &character);
    printf("Position to insert: ");
    scanf("%d", &pos);
    printf("\nPeep becomes\n%d:%c", pos,character);

    charToStr[0] = character;
    strcpy(peep[pos-1],charToStr);

    printf("\nthis is peep: \n%d:%c",pos,peep[pos-1]);
}

He intentado usar strncpy() sin éxito y honestamente he intentado muchas otras cosas.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en el uso de la función strcpy(). La función strcpy() se utiliza para copiar una cadena de una ubicación a otra, pero en este caso, estamos tratando de insertar un solo carácter en una matriz.

    Para insertar un carácter en una posición específica de una matriz de caracteres, necesitamos utilizar indexación de array y asignación. Simplemente podemos asignar el carácter al índice específico en la matriz de caracteres de la siguiente manera:

    peep[pos-1] = character;
    

    Esta declaración asignará el carácter a la posición en la matriz especificada por la variable ‘pos’.

    Por lo tanto, el código actualizado debería verse así:

    int main(){
        char *peep = malloc(256);
    
        int pos;
        char character;
    
        printf("\nCarácter a insertar: ");
        scanf("%c", &character);
        printf("Posición a insertar: ");
        scanf("%d", &pos);
        printf("\nPeep se convierte en\n%d:%c", pos,character);
    
        peep[pos-1] = character;
    
        printf("\nEsto es peep:\n%s",peep);   
    }
    

    Este código ahora debería insertar el carácter en la posición especificada en la matriz sin problemas.

Comments are closed.