Пт ноя 12, 2010 11:15:57
lix писал(а):UPD: да. поспешил mpz_init_set_str нужна
Пт ноя 12, 2010 12:39:16
Кислый писал(а):в ide выдает эту непонятную ошибку
Пт ноя 12, 2010 12:59:56
Пт ноя 12, 2010 13:06:36
Кислый писал(а):Code::Blocks IDE
gmp - системная либа.
а вот где ключик -lgmp прописать ?
Сб ноя 13, 2010 15:53:10
mpz_init_set_str (mpz_ptr x, const char *str, int base)
Исключение в операции с плавающей точкой
Сб ноя 13, 2010 17:14:26
Сб ноя 13, 2010 18:40:12
Сб ноя 13, 2010 19:30:17
Сб ноя 13, 2010 20:21:01
Кислый писал(а):ну дык.. не я это придумал. если в либе есть соответствующие функции (rsa) то почему бы и не воспользоваться ?
Сб ноя 13, 2010 20:48:03
Сб ноя 13, 2010 22:05:36
Кислый писал(а):ВАЖНО и с ВАФОСОМ : вот давайте не будем спорить..
Вт ноя 16, 2010 20:46:33
#define Ё 14
#define Ж 16
#define И 18
#define К 20
text [4] = {Ё,Ж,И,К}
Вт ноя 16, 2010 23:00:08
O-LED писал(а):Извините, за "новое слово в языке Си" но возможно ли как нибудь, применение русских букв в CИ, в частности в #define
например
- Код:
#define Ё 14
#define Ж 16
#define И 18
#define К 20
text [4] = {Ё,Ж,И,К}
Наверное бред, но нужно закодировать кучу массивов содержащих русский текст, и былобы очень удобно "задефинить" все русские буквы, а потом просто собирать массивы русскими буквами
char text[] = "ЁЖИК";
Вт ноя 16, 2010 23:20:29
Вт ноя 16, 2010 23:27:55
O-LED писал(а):чему тогда у меня будет равно например text[2] ???
Ср ноя 17, 2010 00:34:27
Ср ноя 17, 2010 01:09:36
Кстати, если строго, то полным аналогом посимвольной инициаизации со скобками { } будетARV писал(а):
- Код:
text [4] = {Ё,Ж,И,К}
...
но скажите, зачем вам это?! ведь строка в Си инициализируется самым тривиальным способом:
- Код:
char text[] = "ЁЖИК";
char text[4] = "ЁЖИК";
char text1[4] = {Ё,Ж,И,К}; // тут 4 можно было и не указывать, всё равно было бы 4
char text2[] = "ЁЖИК"; // тут в массиве будет ограичитель '\0' и будет 5 элементов массива
char text3[4] = "ЁЖИК"; // а тут ограничителя не будет, массив размером 4 элемента
Ну как-то так:O-LED писал(а):А скажите, как тогда мне лучше объявить массив в котором используются только элементы с 192 по 223, а остальные не нужны (у знаков А-Я код 192-223) ?
enum { start_char = 'А', end_char = 'Я', total_chars = end_char - start_char +1 };
const char array[total_chars] = { ... };
inline char get_from_array( char ch)
{
if( ch < start_char || ch > end_char ) return ch; // при уверенности в том, что не передадут «запредельное», эту строку можно и убрать
return array[ ch - start_char ];}
И чернила для 8-го класса.O-LED писал(а):зы. какую книгу по Си для микроконтроллеров порекомендуете??
Ср ноя 17, 2010 07:36:52
avreal писал(а):Иногда удобно, экономит место.
- Код:
char text1[4] = {Ё,Ж,И,К}; // тут 4 можно было и не указывать, всё равно было бы 4
char text2[] = "ЁЖИК"; // тут в массиве будет ограичитель '\0' и будет 5 элементов массива
char text3[4] = "ЁЖИК"; // а тут ограничителя не будет, массив размером 4 элемента
Ср ноя 17, 2010 09:58:43
avreal писал(а):Кстати, если строго, то полным аналогом посимвольной инициаизации со скобками { } будет
- Код:
char text[4] = "ЁЖИК";
Ср ноя 17, 2010 19:45:56
Ой, ну с одинарными кавычками — это просто среди ночи тупо копипастнул и не поправил, извините уж. В добитых своей рукой коментаиях '\0' в кавычки взял, а там — не исправил.asteroid7 писал(а):А Вы проверяли это? А что за компилятор, который позволяет так делать?
По стандарту Си рабочий, в этом примере, только второй массив. В первом нужно символы заключать в одинарные кавычки, а третий ругнётся на размерность. Во все строки, а строка это двойные кавычки, компилятор должен помещать конец строки '\0'.
А вот в C++ так нельзя и это одно из тонких отличий между языками3.5.7 Initialization
...
Finally, the declaration
char s[] = "abc", t[3] = "abc";
defines ``plain'' char array objects s and t whose members are initialized with character string literals. This declaration is identical to
char s[] = { 'a', 'b', 'c', '\0' }, t[] = { 'a', 'b', 'c' };