Advanced member
Статус: Не в сети Регистрация: 09.03.2004 Откуда: Кишинёв
_nic писал(а):
выкинуть все символы которые туда уже записаны?
Хм, сразу вспоминается анекдот старый: "Я скачал файл из интернета, но он мне не нужен. Как мне его обратно закачать?" .
Не знаю что у вас там смешивается, но думаю этот вариант точно подойдёт:
Код:
memset(a,0,200);
вся область памяти(строка) заполняется нулями.
Есть метод покороче:
Код:
a[0] = '\0';
Но успех будет зависить от того, каким образом вы заполняете строку символами.
зы: выкинуть символы из памяти нельзя. Просто нужно понимать что строка это некоторое количество символов(чисел), которая заканчивается нулём(нулевым символом). Всё что находится за первым нулевым символом уже не часть строки.
Я проверил на простейшем приложении(диалог, винапи): с минимизированного состояния окно появляется и становится активным, активация по таймеру.
Тогда я вообще не понимаю. Создал пустую форму, кинул таймер, в обработчике команда - ShowWindow(Handle, SW_SHOWNORMAL); - не работает.
Нашел еще команду SetZOrder(); - параметр - логическая переменная, если true - окно должно выходить на передний план, если false то соответственно наоборот, окно "прячется" за другими. Так фишка в том, что с false работает, окно прячется, а с true - нифига. Че я не так делаю? %)
Member
Статус: Не в сети Регистрация: 01.04.2005 Откуда: Москва-Лубянка
Deimos
char c = *string;
Все-таки очень желательно сначала разобраться, что в Си вообще происходит и как хранится в памяти..
Добавлено спустя 4 минуты, 2 секунды А, а что ты называешь стринговой переменной? char *, CString, TString, AnsiString?
Member
Статус: Не в сети Регистрация: 18.08.2004 Откуда: г.Юбилейный
Цитата:
Все-таки очень желательно сначала разобраться
В паскале было всё подругому разобрался.
Код:
char* str; int i; i = 5; str[3] = i;
Си суёт в массив букву соответствующую этому коду, а мне надо чтобы писал цифру... Добавлено спустя 24 минуты, 27 секунд ещё вопрос, как очистить массив?
Member
Статус: Не в сети Регистрация: 01.04.2005 Откуда: Москва-Лубянка
Deimos Си сует байт «0x05» по адресу str+3. Символом с кодом 5 это потом считать или числом «5» — это твое дело…) Но считать это автоматически символом с кодом 0x35 («5») это уж точно не стоит)
Advanced member
Статус: Не в сети Регистрация: 09.03.2004 Откуда: Кишинёв
Deimos писал(а):
Си суёт в массив букву соответствующую этому коду, а мне надо чтобы писал цифру...
Для символов пользуйтесь кавычками - удобнее и нагляднее:
Код:
i = '5';
char* str; - это не строка. Это указатель, причём указывает он в никуда(если вручную не выделить память под него, или изменить адрес на валидный). Если хотите объявить "строку"(в языке си их в принципе нет ), то объявляйте сразу массив:
Код:
char str[256];
По хорошему длинну нужно выбирать минимально достаточной и обращаться за границы массива очень не желательно.
А вообще нужно почитать про строки и массивы в си - пропадёт много вопросов
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения