Error in C regarding libraries

3
#include <stdio.h>
#include <ctype.h>
main()
{
    char palabra[32];
    char ordenado[32];
    int longitud;
    int i;
    int j;
    char x;

    printf("Dame una palabra:\n");
    scanf("%s",palabra);

    longitud=strlen(palabra);
    strcpy(ordenado,palabra);
    /*copiamos la cadena de origen (palabra) para no modificarla
    y trabajar sobre otra (odenada)*/

    /*El metodo es de bubblesort, comparamos una a una las letras*/
    for(i = 1; i < longitud; i++)
        for(j=0; j<longitud-i; j++)
        {
            if((tolower(ordenado[j]))>(tolower(ordenado[j+1])))
                /*Para pasar la letra sea minuscula o mayuscula*/
            {
                x=ordenado[j];
                ordenado[j]=ordenado[j+1];
                ordenado[j+1]=x;
            }
        }
    printf("Tu palabra es: %s\n",palabra);
    printf("Tu palabra ordenada es: %s\n",ordenado);
    system("pause");
}

Attached image of the error that I get when compiling and executing

    
asked by T. Damian 17.04.2017 в 15:15
source

1 answer

4

You could do something like this:

#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>

int main() {
    char palabra[32];
    char ordenado[32];
    int longitud;
    int i;
    int j;
    char x;

    printf("Dame una palabra:\n");
    scanf("%s", palabra);

    longitud = strlen(palabra);
    strcpy(ordenado, palabra);
    /*copiamos la cadena de origen (palabra) para no modificarla 
    y trabajar sobre otra (odenada)*/

    /*El metodo es de bubblesort, comparamos una a una las letras*/
    for (i = 1; i < longitud; i++)
        for (j = 0; j < longitud - i; j++) {
            if ((tolower(ordenado[j]))>(tolower(ordenado[j + 1])))
                /*Para pasar la letra sea minuscula o mayuscula*/ {
                x = ordenado[j];
                ordenado[j] = ordenado[j + 1];
                ordenado[j + 1] = x;
            }
        }
    printf("Tu palabra es: %s\n", palabra);
    printf("Tu palabra ordenada es: %s\n", ordenado);
    system("pause");

    return 0;
}

When reviewing the errors that are generated, we can find these:

  

strlen undeclared

     

strcpy undeclared

     

system undeclared

These errors indicate that there are certain functions that need to include the respective library, to be able to use them.

For this we include then:

#include <string.h>
#include <stdlib.h>

In string.h we find the functions strlen() and strcpy() .

In stdlib.h we find the function system()

Note:

Generally to allow a portability of the code, or to follow a standard, the function main() is usually declared as follows:

int main()

Since this function must return to the operating system a return value, which is usually 0, indicating successful execution of the program.

    
answered by 17.04.2017 в 15:33