Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2012, 22:17   #1
Narusegava
Пользователь
 
Регистрация: 01.12.2012
Сообщений: 11
По умолчанию char и string

Здравствуйте!
В C++ я сильно новичок, до этого работал в Delphi...
Решил перейти на С и как водится заблудился в трех соснах...
есть вот такой отрывок программы:
Код:
  char str[512];
  char cr1[1] = {0x58};
  char cr2[2] = {0x13,0x10};
  strcpy(str,cr1);
  strcat(str,"atz") ;
  strcat(str,cr2)   ;
  CommPort1->PutString( str );
т.е. формируется строка и отправляется на COM порт.
НО вот тут и проблема почему то строка выглядит так:
в коде-
58 bc 7e 59 61 74 7a 13 10 58 bc 7e 59
в символах-
X¼~Yatz..X¼~Y

Откуда взялись выделенные символы?

всю голову сломал... Заранее благодарен за ответ!
Narusegava вне форума Ответить с цитированием
Старый 01.12.2012, 22:28   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

у вас строки не нультерминантные, вот функции и лезут дальше по стеку до нуль-символа
p51x вне форума Ответить с цитированием
Старый 01.12.2012, 22:43   #3
Narusegava
Пользователь
 
Регистрация: 01.12.2012
Сообщений: 11
По умолчанию

Так их же длина указывается при объявлении?
Код:
char cr1[1] = {0x58};
char cr2[2] = {0x13,0x10};
У cr1 - массив длиной один символ, у cr2 - массив длиной два символа?
И что бы они стали нультерминальные надо на один увеличить массив?
Как то так:
Код:
char cr1[2] = {0x58, 0x00};
char cr2[3] = {0x13, 0x10, 0x00};
Narusegava вне форума Ответить с цитированием
Старый 01.12.2012, 23:31   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

1. длину можно не указывать, компилятор сам определит
2. либо увеличивать, либо не юзать строковые функции
p51x вне форума Ответить с цитированием
Старый 01.12.2012, 23:37   #5
Narusegava
Пользователь
 
Регистрация: 01.12.2012
Сообщений: 11
По умолчанию

Всё заработало! Спасибо!
Narusegava вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
string-char-wchar_t-char-string чето потерял magog7 Общие вопросы C/C++ 0 08.08.2011 20:21
string vs. char tools Общие вопросы C/C++ 9 22.12.2010 01:49
String To Char RIO Общие вопросы C/C++ 2 22.06.2010 00:30
String и char Julinja Паскаль, Turbo Pascal, PascalABC.NET 9 03.01.2009 12:10
char->string eds Общие вопросы .NET 1 28.11.2007 17:22