Cadena de Caracteres

Johand H
19 de Noviembre del 2004
tengo un problema quiero mostrar una cadena de caracteres al reves pero tengo un error de que no puedo convertir void a char** si alguien sabe?

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

#define MAXFRA 10

void main(void)
{
char c, temp[20];
char **frase;

int n, j=0, i, npal=0;

/* reservar espacio para el vector de punteros a las palabras */
frase = malloc(MAXFRA*sizeof(char*));

printf("Introduzca una frase, y pulse "Intro" para finalizar.n");
/* Lectura de las palabras */
do {
c = getchar();
if (c != ' ' && c != 'n')
temp[j++]=c;
else {
temp[j++] = '';
frase[npal] = malloc(j*sizeof(char));
strcpy(frase[npal++], temp);
j=0;
}
} while (c != 'n');

printf("nnLas palabras de la frase son:");
for (j=0; j<npal; j++)
printf("n%s ", frase[j]);

printf("nnLa frase escrita al reves es:n");
n = npal-1;
for (i=n; i>=0; i--)
printf("%s ", frase[i]);

printf("nnLas palabras al reves son:n");
for (i=0; i<npal; i++) {
for (j=strlen(frase[i])-1; j>=0; j--)
printf("%c", frase[i][j]);
printf(" ");
}
}

Pedro
19 de Noviembre del 2004
Este código está probado en Dev-C++:

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

main()
{
char frase[50];
int n;

printf("Introduzca una frase, y pulse "Intro" para finalizar.n");
/* Lectura de las palabras */
gets(frase);

printf("nnLas palabras de la frase son:n");
for (n=0; n<strlen(frase); n++){
if(frase[n]==' ')
printf("n");
else
printf("%c",frase[n]);}

printf("nnLa frase escrita al reves es:n");
for (n=strlen(frase)-1;n>=0;n--)
printf("%c",frase[n]);

printf("nnLas palabras al reves son:n");
for (n=strlen(frase)-1;n>=0;n--){
if(frase[n]==' ')
printf("n");
else
printf("%c",frase[n]);}
getchar();
}

juan esteban
19 de Noviembre del 2004
esto te puede servir, no se si ya lograste hacer lo que quieres

//cadenita.cpp pide una cadena y la imprime caracter a caracter con
//un bucle do...while y al revés con un bucle for...
//Editado por [email protected]
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include<string.h>

int main()
{
clrscr();
char cadena[50];
static int i;
gets(cadena);
do
{
printf("%c", cadena[i]);
}while(cadena[i++]);
printf("nn");
for(i=strlen(cadena);i>=0; i--)
printf("%c", cadena[i]);
system("PAUSE>NULL");
getch();
return 0;}

Johand H
19 de Noviembre del 2004
Gracias por todo ya veo otras maneras de usarse y despues de indagar tanto tambien consegui la solucion y funciona
aqui les doy el codigo en tal caso quieran usarlo

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

#define MAXFRA 10

void main(void)
{
char c, temp[20];
char **frase;

int n, j=0, i, npal=0;

/* reservar espacio para el vector de punteros a las palabras */
frase = (char**)malloc(MAXFRA*sizeof(char*));

printf("Introduzca una frase, y pulse "Intro" para finalizar.n");
/* Lectura de las palabras */
do {
c = getchar();
if (c != ' ' && c != 'n')
temp[j++]=c;
else {
temp[j++] = '';
frase[npal] = (char*)malloc(j*sizeof(char));
strcpy(frase[npal++], temp);
j=0;
}
} while (c != 'n');

printf("nnLas palabras de la frase son:");
for (j=0; j<npal; j++)
printf("n%s ", frase[j]);

printf("nnLa frase escrita al reves es:n");
n = npal-1;
for (i=n; i>=0; i--)
printf("%s ", frase[i]);

printf("nnLas palabras al reves son:n");
for (i=0; i<npal; i++) {
for (j=strlen(frase[i])-1; j>=0; j--)
printf("%c", frase[i][j]);
printf(" ");
}
}