C/Visual C - integrer-puntero

 
Vista:

integrer-puntero

Publicado por Lucas (22 intervenciones) el 14/08/2002 02:39:50
Hola.
Tengo un pequeño problema, os cuento, estoy practicando con arrays bidimensionales, y se me ocurrio hacer un programa el cual dijese el valor ascii, hexadecimal y octal de una letra del abecedario insertando la posicion de la letra, osea si ejecutaba: /programa -d 1 , me decia todos esos datos sobre la letra 'a'.

Hasta aqui todo correcto, pero tambien se me ocurrio hacer insertar la letra y decir estas mismas caracteristicas, pero el problema me viene para saber si esa letra existe dentro del array bidimensional, porque comparo un valor integrer con un punto. (especificamente el argv[2]) .

Seguidamente pongo el codigo del programa para ver si encontrais alguna soluccion

/* ----------- CODIGO ------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc,char *argv[])
{
int valor, i;
char abecedario[25][2]={
1,'a',
2,'b',
3,'c',
4,'d',
5,'f',
6,'g',
7,'h',
8,'i',
9,'j',
10,'k',
11,'l',
12,'m',
13,'n',
14,'o',
15,'p',
16,'q',
17,'r',
18,'s',
19,'t',
20,'u',
21,'v',
22,'w',
23,'x',
24,'y',
25,'z' };

/* si no existen tres argumentos o si el argumento 1 no es -l ó -d imprimimos error */

if(argc!=3 || (strcmp(argv[1],"-l")!=0 &&strcmp(argv[1],"-d"))!=0)
{
error();
}


else
{

/*insertar una letra (opcion -l) pasa saber sus caracteristicas*/

if(strcmp(argv[1],"-l")==0) {
for(i=0; i<26; i++) {

/* intentamos buscar si la letra esta dentro del array*/

if(argv[2]==abecedario[i-1][1]) { /* ----- EL ERROR ----- */
printf("encontrado");
}
}
}
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

RE:integrer-puntero

Publicado por Lucas (22 intervenciones) el 14/08/2002 02:41:49
Parece este foro tiene un limite de caracteres, bueno, al menos se ha pegado la parte del error ,jeje.
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

RE:integrer-puntero

Publicado por ju4n1t0 (9 intervenciones) el 15/08/2002 04:36:47
No puedes comparar tipos que no sean (char *) y por ello argv[2] es un puntero tipo char * (string), que no es compatible al compararla con un solo caracter (tu abecedario), lo que debes hacer es comparar con el primer elemento de argv[2], por ejemplo:

for(i=0; i<26; i++) {
if(argv[2][0]==abecedario[i-1][1])
printf("encontrado");
}

Saludos
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