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

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

Войти
Регистрация
Восстановить пароль
 
mr. Spock
20 / 20 / 12
Регистрация: 01.01.2011
Сообщений: 198
#1

Строки (добавляет какие-то непонятные символы) - C++

09.01.2014, 21:44. Просмотров 883. Ответов 4

Есть функция, которая возвращает строку.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char *create_string(int Q1, int Q2, int Q3, int S1, int S2, int S3, float T)
{
int Q[3];
int S[3];
Q[0]=Q1; Q[1]=Q2; Q[2]=Q3;
S[0]=S1; S[1]=S2; S[2]=S3;
char *f=new char[50];
for (int i=0;i<3;i++)
{
strcat(f,"#");
strcat(f,to_char(S[i]));
strcat(f,"P");
strcat(f,to_char(Q[i]));
}
strcat(f,"T");
strcat(f,to_char(T));
strcat(f,"\n\r");
return f;
}
Все в порядке, только в начале результирющей строки она добавляет какие-то непонятные символы. В результате получается строка вида
8³»r#24P1668#25P1709#26P2121T2
а должна быть такая:
#24P1668#25P1709#26P2121T2

Что я делаю не так?
Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2014, 21:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки (добавляет какие-то непонятные символы) (C++):

При работе с программой выдает не результат, а какие то непонятные символы - C++
Вот скриншот: Собственно что это и как убрать ?

Почему при попытки считывания выдаёт какие-то непонятные символы, а не те, которые требовались? - C++
#include &lt;cstdio&gt; #include &lt;iostream&gt; using std::cout; using std::cin; using std::endl; int main () { double...

Непонятные символы.(Строки и указатели). - C++
Добрый вечер. Задание - Написать программу получения строки, в которой удалены все “лишние” пробелы, т.е. из нескольких подряд идущих...

Непонятные символы - C++
В общем, сделал функцию.Все работает, но есть одно но: если вводить строку, а введеный символ разделитель будет в ней отсутствовать, то в...

Непонятные символы в консоли - C++
Доброго времени суток! Работаю со строками, перезагружаю операторы, но на консоль вместе с результатом выводятся какие-то непонятные...

Непонятные символы в консоли - C++
Выводит непонятные символы (пики, стрелки), скрин снизу, посмотрите. Вот сам код: #include &lt;iostream&gt; using namespace std; int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Убежденный
Системный программист
Эксперт С++
15551 / 7059 / 1114
Регистрация: 02.05.2013
Сообщений: 11,468
Завершенные тесты: 1
09.01.2014, 21:49 #2
В буфере f находится "мусор". Когда первый раз вызывается strcat, он
прибавляет строку к этому мусору.
0
mr. Spock
20 / 20 / 12
Регистрация: 01.01.2011
Сообщений: 198
09.01.2014, 21:55  [ТС] #3
Цитата Сообщение от Убежденный Посмотреть сообщение
В буфере f находится "мусор". Когда первый раз вызывается strcat, он
прибавляет строку к этому мусору.
когда я делаю так, то сразу выбивает

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
char *create_string(int Q1, int Q2, int Q3, int S1, int S2, int S3, float T)
{
int Q[3];
int S[3];
Q[0]=Q1; Q[1]=Q2; Q[2]=Q3;
S[0]=S1; S[1]=S2; S[2]=S3;
char *f=new char[50];
f=NULL;
for (int i=0;i<3;i++)
{
strcat(f,"#");
strcat(f,to_char(S[i]));
strcat(f,"P");
strcat(f,to_char(Q[i]));
}
strcat(f,"T");
strcat(f,to_char(T));
strcat(f,"\n\r");
return f;
}
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
09.01.2014, 21:57 #4
mr. Spock, не
C++
1
f=NULL;
а
C++
1
*f = 0;
или
вместо
C++
1
strcat(f,"#");
написать
C++
1
strcpy(f,"#");
P.S. с strcpy() погорячился. Не заметил сразу, что это в цикле.
Поэтому еще могу предложить вариант написать до цикла такое:
C++
1
strcpy(f,"");
1
mr. Spock
20 / 20 / 12
Регистрация: 01.01.2011
Сообщений: 198
09.01.2014, 22:08  [ТС] #5
все, идеально.
спасибо)))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2014, 22:08
Привет! Вот еще темы с ответами:

непонятные символы в строке char - C++
имеется такая функция: char subWord(char s, char s1, int n, int I){ int prob=0; int prob1=0; int scount; int...

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

Выводятся непонятные символы В ФАЙЛ - C++
Столкнулся с проблемой. Сначала при выводе в консоль была проблема, но поправил setlocale(LC_ALL, &quot;rus&quot;); Но теперь возникла проблема при...

На выходе выдаются непонятные символы - C++
Задание: написать программу которая разворачивает запись типа a-z в строке s в полный список abc...xyz в строке s2 # include...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.01.2014, 22:08
Ответ Создать тему
Опции темы

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