2011-04-27 4 views
3

what_if_var[0].price (тип char [10]) имеет значение «$ 15555.665». Есть ли способ удалить «$» из значения (например, «15555.665») и преобразовать значение в double?удалить специальный символ в переменной структуры

+1

Если цена равна char [10], тогда значение «$ 15555.665» является переполнением буфера. Осторожный. –

+0

@Paul Хорошая уловка. @jcrshankar Нулевой терминатор требует 11-го байта. – chrisaycock

+0

отличный паул .. я просто привел его в качестве примера. – jcrshankar

ответ

5

Если вы всегда знаете, что '$' будет первый символ, вы можете просто попробовать:

double num = strtod (what_if_var[0].price + 1, NULL); 
+0

Вы также можете называть 'atof()', хотя некоторые из вежливого общества считают это устаревшим. – chrisaycock

+0

спасибо, chris ... есть так или иначе, чтобы преобразовать строку в double. – jcrshankar

+0

@jcrshankar 'strtod()' означает '* string * to * double * ". Это именно то, что вы ищете. – chrisaycock

1

Проверьте функцию strtod, преобразует строку в два раза.

Смежные вопросы