C言語なら俺に聞け! Part 100
■ このスレッドは過去ログ倉庫に格納されています
0702デフォルトの名無しさん
05/01/28 21:41:25作ったのですが、0がきた時に、
char型が空のときにatolが0と変換してしまい、
正しい結果が得られません。
どこを直せばいいのか、指摘していただきたいです。
よろしくお願いいたします。
bool gl_AdressCheck( char *c_ipaddr){
char c_tempbuf[255]; // 一時退避文字列
char *p; // 文字列ポインタ
int i = 0; // 一時退避文字列カウンタ
int n = 0; // .を数える為のカウンタ
memset(c_tempbuf,0,sizeof(c_tempbuf));
for ( p = c_ipaddr; ; p++ ) {
c_tempbuf[i] = *p; // 文字列をコピー
if (*p == '.' || *p == '\0' ) {
if(0 <= atol(c_tempbuf) && atol(c_tempbuf) < 256){
memset(c_tempbuf,0,sizeof(c_tempbuf));
i = 0;
n++;
}else{
return false;
}
} else {
c_tempbuf[i++] = *p;
}
// 正しい脱出条件
if ( *p == '\0' && n == 4 ) {
break;
}
}
return true;
}
■ このスレッドは過去ログ倉庫に格納されています