реклама на сайте
подробности

 
 
> Работа со строками на С в CCS2.20
Mokena
сообщение Oct 22 2007, 19:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 4-06-07
Пользователь №: 28 174



Пишу программу для вывода информации, в том числе и текста, на графический экран.
Процессор: TMS320F2812, среда разработки: CCS 2.20

Нужно преобразовать число в строковое представление и подставить в строку, где уже есть название параметра и единица измерения, к примеру: "Freq: %dMHz". Удобнее всего это сделать с помощью sprintf(), но она всегда возвращает пустую строку. Какие здесь бывают подводные камни? Какие строки нужно использовать: динамические (char *st) или с явно заданной длиной (char *st[20]), нужно ли выделять для них память?
Может быть лучше использовать связку ltoa() + strcpy() + strcat()? Правда, это не совсем удобно, но может-быть работает быстрее?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Edmundo
сообщение Oct 22 2007, 20:19
Сообщение #2


Мастер
****

Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474



Цитата(Mokena @ Oct 22 2007, 23:49) *
Нужно преобразовать число в строковое представление и подставить в строку, где уже есть название параметра и единица измерения, к примеру: "Freq: %dMHz". Удобнее всего это сделать с помощью sprintf(), но она всегда возвращает пустую строку. Какие здесь бывают подводные камни? Какие строки нужно использовать: динамические (char *st) или с явно заданной длиной (char *st[20]), нужно ли выделять для них память?
Может быть лучше использовать связку ltoa() + strcpy() + strcat()? Правда, это не совсем удобно, но может-быть работает быстрее?

Да вроде нет тонкостей...
Объявляете строку, лучше статически и лучше глобальную для начала, подключаете <stdio.h> и все должно работать. Например так:

Код
#include <stdio.h>
char g_sFreq[32];

void main()
{
    sprintf(g_sFreq, "Freq: %d MHz", 13);
}


Если какие-то проблемы -- надо смотреть, иногда бывает из-за недостаточного стека или еще из-за чего.

С динамическй памятью лучше не связываться, во первых надо кучу выделить в памяти (а в 28-м итак памяти с гулькин нос), во-вторых это довольно медленно работает (менеджер памяти там и т.п.), в-третьих, бывали непонятки иногда (правда на другом камне).


--------------------
شامل
Go to the top of the page
 
+Quote Post
Mokena
сообщение Oct 23 2007, 15:55
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 4-06-07
Пользователь №: 28 174



Цитата(Edmundo @ Oct 23 2007, 00:19) *
Да вроде нет тонкостей...
Объявляете строку, лучше статически и лучше глобальную для начала, подключаете <stdio.h> и все должно работать.
Да... ложанулся я, все дело было в stdio.h - я забыл его подключить 01.gif. Странно, что компилятор ничего не сказал.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 23:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01381 секунд с 7
ELECTRONIX ©2004-2016