Supongamos que la matriz de caracteres. decir char x[100]

Ahora, me toma la entrada del usuario y almacenarlo en la matriz de char. El usuario de entrada es de menos de 100 caracteres. Ahora, si me quieren hacer alguna operación sobre los valores válidos, ¿cómo puedo saber cuántos valores válidos están en la matriz de char. Hay una función de C o de alguna manera de encontrar la longitud real de los valores válidos que será menos de 100 en este caso.

InformationsquelleAutor Programmer | 2011-06-15

4 Comentarios

  1. 10

    Sí, C tiene la función de strlen() (de la cadena.h), que le da el número de caracteres de matriz de char. ¿Cómo se sabe esto? Por definición, cada C «cadena» se debe terminar con el carácter null. Si no lo hace, usted no tiene manera de saber cómo de larga es la cadena o con otras palabras, los valores de que las ubicaciones de la memoria de la matriz son realmente «útil» y que son sólo algunos de volcado. Sabiendo esto, sizeof(your_string) devuelve el tamaño de la matriz (en bytes) y NO la longitud de la cadena.

    Por suerte, la mayoría de biblioteca de C de la cadena de funciones que crear «cadenas» o leer la entrada y lo almacena en una matriz de char adjuntará automáticamente carácter nulo al final para terminar la «cadena». Algunos no lo hacen (por ejemplo strncpy() ). Asegúrese de leer las descripciones cuidadosamente.

    También, tener en cuenta que esto significa que el tampón suministrado debe ser de al menos uno de los personajes más tiempo que el especificado de la entrada de longitud. Así que, en su caso, usted debe suministrar en realidad char array de longitud de 101 a leer en 100 caracteres (la diferencia de que un byte es para el carácter nulo).

    Ejemplo de uso:

    #include <stdio.h>
    #include <string.h>
    
    int main(void)
    {
        char *string = "Hello World";
        printf("%lu\n", (unsigned long)strlen(string));
        return 0;
    }

    la función strlen() se define como:

    size_t strlen(const char * str)
    {
        const char *s;
        for (s = str; *s; ++s);
        return(s - str);
    }

    Como se puede ver, el final de una cadena es encontrar mediante la búsqueda de la primera carácter null en la matriz.

  2. 0

    Cada vez que introduzca una cadena en una matriz en la que termina con un carácter nulo. Usted sólo tiene que encontrar donde está el carácter nulo de la matriz.

    Usted puede hacer esto manualmente, de lo contrario, strlen() va a resolver su problema.

  3. -1

    char ch;

    int len;

    while( (ch=getche() ) != ’13’ )

    {

    len++;

    }

    o utilizar la función strlen después de la conversión de char a string por %s

Dejar respuesta

Please enter your comment!
Please enter your name here