Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
qwer18ccc
0 / 0 / 0
Регистрация: 03.08.2013
Сообщений: 4
#1

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

03.08.2013, 00:41. Просмотров 573. Ответов 8
Метки нет (Все метки)

Добрый день уважаемые форумчане) Пишу в 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 вырвать нужный кусок текста? эта функция будет выводить на дисплей набраный текст автоматически перенося)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2013, 00:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос перевод строки CHAR (C++):

Строки. Создание, объявление и компановка. Перевод из string в char[] - C++
Здравствуйте! У меня возникла проблема при создании строки. Суть задачи: есть несколько переменных типа unsigned int. Эти...

Различное поведение функции которая копирует строки с char* t и char t[] - C++
столкнулся с ситуацией которую не могу объяснить пишем функцию которая копирует одну строку в другую: void strstr(char* t,...

Преобразование char в char* или разделить на две строки - C++
Пытаюсь сделать программу под linux. Возникла проблема, описанная в заголовке. Мне нужно разделить строку в char на две по символу ? либо...

Строка: чем отличается строки string, char, char*? - C++
Помогите разобраться,совсем плохо идёт,чем отличается строки string,char,char* И если можно пару примеров Буду весьма признательна

Запись строки char в массив char - C++
Глупый вопрос, но что поделать, многое забыл... Хочу записть строку типа char в массив строк типа char, но выдает ошибку что "невозможно...

Перевод из string в char - C++
Хочу перевести из String в char но что та не получается. ошибка такая: инициализация: невозможно преобразовать "const char *" в "char" и...

8
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
03.08.2013, 05:04 #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
и т.д.
1
qwer18ccc
0 / 0 / 0
Регистрация: 03.08.2013
Сообщений: 4
03.08.2013, 08:25  [ТС] #3
Простите, но в моём компиляторе IAR функция cout не разпознаёться.
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
03.08.2013, 11:12 #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;
}
1
Kuzia domovenok
1952 / 1805 / 140
Регистрация: 25.03.2012
Сообщений: 6,252
Записей в блоге: 1
03.08.2013, 11:32 #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);//...или какие там верные функции для вывода на экран. не суть.
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
03.08.2013, 11:34 #6
Kuzia domovenok, Да откуда я знаю под что он программирует, я токо С++ знаю и сразу подумал что IARе это какой то компилятор С++, а это оказалось Си компилятор.
1
qwer18ccc
0 / 0 / 0
Регистрация: 03.08.2013
Сообщений: 4
03.08.2013, 14:50  [ТС] #7
C++
1
2
3
4
5
6
for(int i=0;i<4;i++)
  {
  sprintf(str, "sk=%d", sk);
  puts(str);
   
  }
не получается
str обьявляю отдельно.
функции рабочие но ничего не выводят
0
Kuzia domovenok
1952 / 1805 / 140
Регистрация: 25.03.2012
Сообщений: 6,252
Записей в блоге: 1
03.08.2013, 18:40 #8
А что делает функция puts? Ты уверен, что она выводит строку на экран?
Ты же говорил, у тебя вывод на экран происходит функцией
C++
1
nlcd_Text(str,10,5,color,fon);
Вот и используй её! И читай почаще Help к своему IAR!
1
qwer18ccc
0 / 0 / 0
Регистрация: 03.08.2013
Сообщений: 4
03.08.2013, 21:15  [ТС] #9
в результате получаеться пустой дисплей. я пытался от char прибавить 1 или другое число. это давало обрезать первую цифру или букву. а мне надо только с другой стороны.

В обшем мне просто надо из char вырвать часть предложения по отмеченым номерам символов. тоесть к примеру с 2 по 8 символ. и этот кусок отобразить.
0
03.08.2013, 21:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.08.2013, 21:15
Привет! Вот еще темы с ответами:

Перевод из char в int - C++
нужно перевести из char в int, способ перевода следующий: &quot;значение цифры равно значению ее символа в таблице символов компьютера...

Перевод *char в int[] c++ - C++
Нужно перевести длинное число которое хранится в виде &quot;+/-324354365654656&quot; в char* в массив int. Нулевой элемент массива знак. Как...

Перевод char в int - C++
Доброго времени суток. покопался по схожим темам,но так и не нашёл ответа. На вводе с клвиатуры подаётся char-овский массив сстоящийиз...

Перевод из string^ в char - C++
как это можно сделать? System::String^ numbron3= textBox11-&gt;Text; const char* str_ptr = numbron3.c_str(); ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru