Cadena de Caracteres
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(" ");
}
}
#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(" ");
}
}
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();
}
#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();
}
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;}
//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;}
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(" ");
}
}
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(" ");
}
}
