C/Visual C - ERROR AL LEER POR TECLADO CADENA DE CARACTERES(STRING)

 
Vista:
sin imagen de perfil

ERROR AL LEER POR TECLADO CADENA DE CARACTERES(STRING)

Publicado por Adrian (3 intervenciones) el 12/11/2016 15:42:07
Hola buenas, tengo un problemilla con un programa muy sencillo que pide codificar una funcion que devuelva la longitud de un string pasado como parametro, el error viene cuando yo al introducir por teclado la cadena que yo quiero, me devuelve la longitud hasta el primera espacio en blanco, cuando deberia hacerlo hasta el '\0'

Aquí dejo el programa como y lo tengo codificado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<stdio.h>
 
#define N 20
 
int longitudCadena(char cadena[]);
 
int main(void)
{
    char cad[N];
    int l;
 
    printf("Introduzca una cadena de texto\n");
    fflush(stdin);
    scanf("%s", cad);
 
    l=longitudCadena(cad);
 
    printf("La longitud de la cadena es: %d", l);
 
    return 0;
}
 
int longitudCadena(char cadena[])
{
    int lon = 0;
 
    while(cadena[lon]!='\0')
    {
        lon++;
    }
 
    return lon;
}

Cuando tecleeo: hola y adios, me sale que la longitud es 4, y no 12 que es lo que deberia de salir, contando losespacios en blanco ' '.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 296
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

ERROR AL LEER POR TECLADO CADENA DE CARACTERES(STRING)

Publicado por agustin (272 intervenciones) el 12/11/2016 16:26:18
scanf solo lee hasta que encuentra un espacio o un salto de línea. Para leer la frase necesitas usar gets o fgets.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

ERROR AL LEER POR TECLADO CADENA DE CARACTERES(STRING)

Publicado por Adrian (3 intervenciones) el 12/11/2016 16:30:30
Y para ello habria que incluir la biblioteca <string.h>?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

ERROR AL LEER POR TECLADO CADENA DE CARACTERES(STRING)

Publicado por Adrian (3 intervenciones) el 12/11/2016 16:34:50
Perfecto, ya lo tengo.
Graciass
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar