以下のプログラムで構造体の中の要素をchar型をint型にしたいんですが、どうしたらいいんですか?
charをintに変えたらエラーが出てしまうので教えてください。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXSTR 256
typedef struct {
char *student_number;
char *first_name;
char *sur_name;
char *phone_number;
char *zip_code;
} DATATYPE;
static char *field_name[/url] = {
"学籍番号", "名", "姓", "電話番号", "〒番号"
};
DATATYPE *create_data(const char *s,const char *f,const char *l, const char *p,const char *z) {
DATATYPE *ptr = (DATATYPE *)malloc(sizeof(DATATYPE));
ptr->student_number = strdup(s);
ptr->first_name = strdup(f);
ptr->sur_name = strdup(l);
ptr->phone_number = strdup(p);
ptr->zip_code = strdup(z);
return ptr;
}
typedef struct _CELL {
struct _CELL *next;
struct _CELL *prev;
DATATYPE *data;
} CELL;
void init(CELL *p, DATATYPE *d) {
p->next = p->prev = p;
p->data = d;
}
CELL *create(DATATYPE *d) {
CELL *p = (CELL *)malloc(sizeof(CELL));
init(p,d);
return p;
}
void insert(CELL *pos,CELL *val) {
val->next = pos->next;
val->next->prev = val;
pos->next = val;
val->prev = pos;
}
void insert_before(CELL *pos, CELL *val) {
insert( pos->prev, val );
}
char *input_message( const char *message ) {
char str[MAXST[/url];
printf( message ); scanf( "%s", str ); return strdup(str);
}
int print_mainmessage() {
int cmd = 0;
printf( "メインメニュー: 行いたい処理の番号を入力して下さい。\n" );
printf( "1. 個人データの追加\n" );
printf( "9. プログラムの終了\n" );
scanf( "%d", &cmd );
return cmd;
}
void insert_menu( CELL *database ) {
char str[MAXST[/url], *s, *f, *l, *p, *z;
printf( "新しいデータを追加します。必要事項を入力して下さい。\n" );
s = input_message( "学籍番号を入力して下さい:" );
f = input_message( "名を入力して下さい:" );
l = input_message( "姓を入力して下さい:" );
p = input_message( "電話番号を入力して下さい:" );
z = input_message( "〒番号を入力して下さい:" );
insert( database, create(create_data( s, f, l, p, z )) );
free(s); free(f); free(l); free(p); free(z);
}
int main(void) {
CELL database, find;
int exit_flag = 0, cmd;
init(&database,NULL); init(&find,NULL);
while (!exit_flag) {
cmd = print_mainmessage();
switch (cmd) {
case 1: // 個人データの追加
insert_menu( &database ); break;
case 9:
exit_flag = !0;
break;
}
}
return 0;
}
char型をint型にしたいです
Re:char型をint型にしたいです
↓こういうことでしょうか?
typedef struct {
int *student_number;
int *first_name;
int *sur_name;
int *phone_number;
int *zip_code;
} DATATYPE;
これなら、(警告が出ることはあっても)エラーにはなりません。
typedef struct {
int *student_number;
int *first_name;
int *sur_name;
int *phone_number;
int *zip_code;
} DATATYPE;
これなら、(警告が出ることはあっても)エラーにはなりません。