| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Вопрос по С в Кодевижул
10.03.2008, 23:56
|
|
|
Прописка
Регистрация: 11.09.2007
Сообщений: 104
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Вопрос по С в Кодевижул
Проблемку не могу решить. Приходить строка из комп порта, такого типа: "A_100" или "BI_1". Надо в первую переменную загнать все что до '_' стоит. А во вторую перемнную все что после '_'. вот так
буквы="BI"
цифры="1"
подскажите =)
|
|
|
|
11.03.2008, 08:27
|
|
|
Прописка
Регистрация: 11.09.2007
Сообщений: 104
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
НУ что кто нить скажит как это реализовать?
|
|
|
|
11.03.2008, 08:47
|
|
|
Прописка
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
у меня так сделано: данные из порта пишутся в массив по прерыванию, т.е. есть буффер типа unsigned char buff[30], заполняю его. Затем дело техники.
for(a=0;a‹30;a++)if(buff[a]=='_') then pos=a;
for(b=0;b‹pos;b++)digit=digit*buff[b];
Ну или как то так...
|
|
|
|
11.03.2008, 14:22
|
|
|
Прохожий
Регистрация: 29.12.2007
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Функция strchr возвращает указатель на позицию символа в строке. Пример разбиения строки по символу:
//-------------------------------------------------
int main(int argc, char* argv[])
{
char *s = new char[255];
scanf("%s", s);
int len = strlen(s);
char *s_ = s;
char *_s = strchr(s, '_');
if (_s) *(_s++) = '\0';
printf("%s\t%s", s_, _s);
getch();
delete [] s;
return 0;
}
//-------------------------------------------------
|
|
|
|
11.03.2008, 21:45
|
|
|
Прописка
Регистрация: 11.09.2007
Сообщений: 104
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
ГЫ
char s[] = "BI_100";
char *n;
int i;
for(i = 0, n = NULL; s[i]; ++i) {
if (s[i] == '_') {
s[i] = '\0';
n = s + i + 1;
break;
}
}
if (n == NULL) {
fprintf(stderr, "Invalid sintax\n");
}
|
|
|
|
12.03.2008, 19:10
|
|
|
Вид на жительство
Регистрация: 22.06.2006
Адрес: Украина
Сообщений: 306
Сказал спасибо: 19
Сказали Спасибо 32 раз(а) в 24 сообщении(ях)
|
"Конечный автомат" -- почитайте в Сети -- очень полезно будет.
|
|
|
|
14.03.2008, 01:42
|
|
|
Прописка
Регистрация: 11.09.2007
Сообщений: 104
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
|
Сообщение от AndryG
|
|
"Конечный автомат" -- почитайте в Сети -- очень полезно будет.
|
Изучал в универе компилятор писали.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
вопрос по си
|
Gladkih |
Микроконтроллеры, АЦП, память и т.д |
4 |
12.02.2009 22:21 |
|
ВОПРОС ПО СИ
|
Gladkih |
Микроконтроллеры, АЦП, память и т.д |
5 |
04.12.2008 16:30 |
|
Вопрос по ОУ
|
Slava_shp |
Автоматика и аппаратура связи |
1 |
02.04.2007 10:47 |
|
Вопрос по PROTEUSу.
|
Pit10 |
Proteus |
27 |
08.02.2007 07:49 |
Часовой пояс GMT +4, время: 21:55.
|
|