Pregunta:
¿problemas con cadenas en lenguaje C?
playvalca
2008-08-14 14:56:19 UTC
quiero hacer un código que al ingresar una cadena sustituya el espacio en blanco por un asterisco pero con el código que tengo no me funciona y me da error este es el código que tengo

#include
#include
#include

int main() {
char a[50],i,tempo=0;

printf("Escriba una frase: ");
scanf("%s",&a);

for(i=0;i<=strlen(a);i++) {
if(a[i] == ' ') {
a[i] = "*";
}
}

printf("%s",tempo);
return 0;
}

me da este error

demp.cpp: In function ‘int main()’:
demo.cpp:13: error: conversión inválida de ‘const char*’ a ‘char’
Seven respuestas:
El caballero sin alma ni corazón
2008-08-14 15:12:01 UTC
Al asignar a[i] hazlo con comilla simple.



a[i] = '*';



Recuerda que a[i] es un caracter y no una cadena.



a="hola mundo";

a[0]='h'; // no "h"





Cierto lo de gets para el espacio, aunque se recomienda no usar gets(a), sino fgets(a, 49, stdin).



Algo más es:

for(i=0;i
Sin el = para no coger el caracter nulo de fin de cadena.
GuruMaster
2008-08-14 21:25:42 UTC
Weh, ni ganas me dan de ver el codigo. Aqui te va uno sencillo (KISS keep it simple):



#include

#include

int main() {

char array[40];

int contador = 0;



printf("Introduce una cadena: ");

gets(array);



while( contador < strlen( array ) ) {

if ( array[contador] == ' ' )

array[contador] = '*';

contador += 1;

}



printf("%s\n", array );

}





Por cierto, sabes que gets() es PELIGROSA>??? TRATA DE HACERLO CON SCANF
AFQC
2008-08-14 16:41:09 UTC
hola

tu error esta en la linea del scanf();

creo que mejor seria usar la función gets();

ya que esta es mas para guardar en una array de cadena;



printf("Escriba una frase: ");

scanf("%s",&a);



printf("Escriba una frase: ");

gets(a);



aunque

también puede ser que la funcion como es el main()

es unica funcion, no debería ser el int main(){}

bastaría con solo ponerle



void main(){

.....

.....

..

return 0;

}
manne45
2008-08-14 15:04:19 UTC
tienes error con la declaracion de la variable a por que no es un char , si no una cadena la cual se declara como string.

Checate este tutorial

http://ca.youtube.com/watch?v=P2QqcOTOWOg

Saludos
Nation84
2008-08-14 15:03:49 UTC
El problema esta con tu scanf() hacia un arreglo de chars, porque no intentas hacer el scanf a un string y luego tokenizas?
Dj Osnet
2008-08-14 15:05:59 UTC
MMM no solo tienes ese error, tienes varios



1.- Estan mal las librerias (sintaxis)

2.- Los corchetes estan mal cerrados

3.- Prueba usar Void Main( )

4.- strlen(a) ahi es la causa del error

demo.cpp:13: error: conversión inválida de ‘const char*’ a ‘char’
mriokore
2008-08-14 15:04:16 UTC
nose


Este contenido se publicó originalmente en Y! Answers, un sitio web de preguntas y respuestas que se cerró en 2021.
Loading...