Форум программистов, компьютерный форум CyberForum.ru

перевод строки CHAR - C++

Восстановить пароль Регистрация
 
qwer18ccc
0 / 0 / 0
Регистрация: 03.08.2013
Сообщений: 4
03.08.2013, 00:41     перевод строки CHAR #1
Добрый день уважаемые форумчане) Пишу в IARе под AVR столкнулся с проблеммой вычесть из строки лишние символы. к примеру приведу такой код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void SHOW_TEXT(char *text, int color, int colors, int fon)
{ 
  char *sk;
  nlcd_Box(0, 0, 132, 132, 1, fon); 
  
  sk=text;
  
  nlcd_Text(sk,10,5,color,fon);
  nlcd_Text(sk,20,5,color,fon);
  nlcd_Text(sk,30,5,color,fon);
  nlcd_Text(sk,40,5,color,fon);
  nlcd_Text(sk,50,5,color,fon);
  nlcd_Text(sk,60,5,color,fon);
  nlcd_Text(sk,70,5,color,fon);
  nlcd_Text(sk,80,5,color,fon);
  nlcd_Text(sk,90,5,color,fon);
  nlcd_Text(sk,100,5,color,fon);
  nlcd_Text(sk,110,5,color,fon);
  nlcd_Text(sk,120,5,color,fon);
}
я знаю что на дисплей влезит 14 символов по 12 строк. если у меня тест 123456789101112131415 я хочу сначала взять 1234 а потом 5678 и т.д как мне из CHAR вырвать нужный кусок текста? эта функция будет выводить на дисплей набраный текст автоматически перенося)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
03.08.2013, 05:04     перевод строки CHAR #2
Цитата Сообщение от qwer18ccc Посмотреть сообщение
если у меня тест 123456789101112131415 я хочу сначала взять 1234 а потом 5678 и т.д как мне из CHAR вырвать нужный кусок текста?
Ну можно примерно так:
C++
1
2
3
4
5
6
7
8
9
char test[]="123456789101112131415";
 
for(int i=0;i<4;i++)
cout <<test[i]; //1234
for(int i=4;i<8;i++)
cout <<test[i];//5678
for(int i=8;i<12;i++)
cout <<test[i];//9101
и т.д.
qwer18ccc
0 / 0 / 0
Регистрация: 03.08.2013
Сообщений: 4
03.08.2013, 08:25  [ТС]     перевод строки CHAR #3
Простите, но в моём компиляторе IAR функция cout не разпознаёться.
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
03.08.2013, 11:12     перевод строки CHAR #4
Цитата Сообщение от qwer18ccc Посмотреть сообщение
Простите, но в моём компиляторе IAR функция cout не разпознаёться.
не знаю что это за IAR - компилятор что бы cout работало нужно подключить заголовочный файл <iostream> (#include <iostream>)
и использовать cout из пространства имен std просто вызывать std::cout <<mass[i]; или определить доступной эту функция из пространства имен std добавив using std::cout;
C++
1
2
3
4
5
6
7
#include <iostream>
using std::cout;
 
int main()
{
cout <<"hellow world\n";
}
А понял это у тебя компилятор языка Си и мб вообще <iostream> нету, но там есть функция printf используй ее для вывода символа метка %с, для строки %s, для числа %d, там очень много меток страницы на две вроде.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <cstdio>
using std::printf;
 
int main()
{
    char mass[]={"12345678910"};
 
    for(int i=0;i<4;i++)
        printf("%c",mass[i]);//1234
    printf("%c",'\n');
 
    return 0;
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
03.08.2013, 11:32     перевод строки CHAR #5
Цитата Сообщение от ninja2 Посмотреть сообщение
не знаю что это за IAR - компилятор что бы cout работало нужно подключить заголовочный файл <iostream> (#include <iostream>)
и использовать cout из пространства имен std просто вызывать std::cout <<mass[i]; или определить доступной эту функция из пространства имен std добавив using std::cout;
вообще-то он под микроконтроллеры программирует. И там скорее всего не то что cout, там вообще никаких потоков и классов нет! А зачем лишняя обёртка над IO функциями, когда каждый байт в целевом микрочипе на счету?
Он же показал тебе, какими функциями осуществляет ввод-вывод! Зачем приплетать С++?

Добавлено через 4 минуты
Цитата Сообщение от ninja2 Посмотреть сообщение
А понял это у тебя компилятор языка Си и мб вообще <iostream> нету, но там есть функция printf используй ее для вывода символа метка %с, для строки %s, для числа %d, там очень много меток страницы на две вроде.
не помню точно, как там в IAR, но обычно printf занимается выводом данных в порт UART или нечто подобное. Если и использовать семейство этих функций, то только для предварительного форматирования строк, например:
C++
1
2
3
sprintf(str, "data=%d", data);//заполнить строку отформатированным текстом с данными
//lcd_puts(str);//вывести на экран
nlcd_Text(str,10,5,color,fon);//...или какие там верные функции для вывода на экран. не суть.
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
03.08.2013, 11:34     перевод строки CHAR #6
Kuzia domovenok, Да откуда я знаю под что он программирует, я токо С++ знаю и сразу подумал что IARе это какой то компилятор С++, а это оказалось Си компилятор.
qwer18ccc
0 / 0 / 0
Регистрация: 03.08.2013
Сообщений: 4
03.08.2013, 14:50  [ТС]     перевод строки CHAR #7
C++
1
2
3
4
5
6
for(int i=0;i<4;i++)
  {
  sprintf(str, "sk=%d", sk);
  puts(str);
   
  }
не получается
str обьявляю отдельно.
функции рабочие но ничего не выводят
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
03.08.2013, 18:40     перевод строки CHAR #8
А что делает функция puts? Ты уверен, что она выводит строку на экран?
Ты же говорил, у тебя вывод на экран происходит функцией
C++
1
nlcd_Text(str,10,5,color,fon);
Вот и используй её! И читай почаще Help к своему IAR!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.08.2013, 21:15     перевод строки CHAR
Еще ссылки по теме:

Перевод из char в int C++
C++ Перевод из double в char
Преобразование char в char* или разделить на две строки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
qwer18ccc
0 / 0 / 0
Регистрация: 03.08.2013
Сообщений: 4
03.08.2013, 21:15  [ТС]     перевод строки CHAR #9
в результате получаеться пустой дисплей. я пытался от char прибавить 1 или другое число. это давало обрезать первую цифру или букву. а мне надо только с другой стороны.

В обшем мне просто надо из char вырвать часть предложения по отмеченым номерам символов. тоесть к примеру с 2 по 8 символ. и этот кусок отобразить.
Yandex
Объявления
03.08.2013, 21:15     перевод строки CHAR
Ответ Создать тему
Опции темы

Текущее время: 16:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru