Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Вопрос по С в CodeVisionAVR


Автор: Kanava 11.3.2008, 07:24
Проблемку не могу решить. Приходить строка из комп порта, такого типа: "A_100" или "BI_1". Надо в первую переменную загнать все что до '_' стоит. А во вторую перемнную все что после '_'. вот так 

буквы="BI" 
цифры="1" 

подскажите =)

Автор: bsa 11.3.2008, 12:51
Зачем статью написал? Нажми на кружочек "форум" вверху экрана (слева-снизу, от эмблемы "vingrad") и перейдешь в "другое измерение".
Код
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");
}

Автор: Kanava 11.3.2008, 20:43
Ого  =) Спасибо. Только не понел это n = s + i + 1; 

Автор: korian 11.3.2008, 20:53
Цитата(Kanava @  11.3.2008,  19:43 Найти цитируемый пост)
Ого  =) Спасибо. Только не понел это n = s + i + 1; 

это можна записать как
n = &(s[i+1]);

Автор: Kanava 11.3.2008, 21:26
Цитата(korian @ 11.3.2008,  20:53)
Цитата(Kanava @  11.3.2008,  19:43 Найти цитируемый пост)
Ого  =) Спасибо. Только не понел это n = s + i + 1; 

это можна записать как
n = &(s[i+1]);

Садист =)) обьесните эту строчку

Автор: korian 11.3.2008, 21:44
s - указатель на первый символ строки.
s[i+1] - символ под номером i + 1
&s[i+1] - указатель на символ с номером i+1 (& - операция получения указателя/адреса)
s + i + 1 - тоже, указатель на символ с номером i+1

Автор: Kanava 11.3.2008, 22:18
Спасибо понел

Добавлено через 14 минут и 28 секунд
Сори что не читал ваша статьи. Исправлюсь. На досуге буду читать, брошу читать Акунина =) 

Автор: bsa 11.3.2008, 23:14
Цитата(Kanava @ 11.3.2008,  22:18)
Сори что не читал ваша статьи. Исправлюсь. На досуге буду читать, брошу читать Акунина =)

Это ты статью написал. Я про нее говорил.  smile 
Сейчас-то модератор ее перевел в форум.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)