2016-05-05 13 views
1

文字列を解析してINTに変換しようとしています。文字列をINT Cプログラミングに構文解析します

私は...

unsigned char color[] = "255" 

を持っていたし、INTにこれを解析したい場合。これをどうやってやりますか?

私はこれがちょうど私の今の分割のための値255を与える...

unsigned char *split; 

split = strtok(color," ,.-"); 
while(split != NULL) 
{ 
    split = strok(NULL, " ,.-); 
} 

を試してみました。

私はstrtolを呼び出し、文字列を整数に変換するには、何かのような...

int y = split - '0'; //but this makes an INT pointer without a cast 

答えて

5

を必要とするように私は感じる:

char color[] = "255"; 
long n; 
char *end = NULL; 
n = strtol(color, &end, 10); 
if (*end == '\0') { 
    // convert was successful 
    // n is the result 
} 
+0

完璧、ありがとうございます – user3622460

+0

@ user3622460それが助けてくれるのが嬉しいです。 – fluter

0

あなたはstrtolはを呼び出さずに変換したい場合は、スキャンすることができますcolor配列を配列し、各char'0'を比較して、対応する数値を得て、結果を10の累乗で適切に乗算します。つまり、

int i = 0, strlen = 0, result = 0; 
while (color[i++]) strlen++; 
for (i = 0; i<strlen; i++) 
{ 
    result += (color[i] - '0')*pow(10,strlen-1-i); 
} 
+0

私は「strtolなし」の印象はOPの考えではありません。 – usr2564301

関連する問題