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

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

Войти
Регистрация
Восстановить пароль
 
 
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
#1

Почему тип char не может делать вот так += - C++

05.09.2012, 11:36. Просмотров 597. Ответов 18
Метки нет (Все метки)

Я хочу из входного текста получить другой текст. Например:
ТЕКСТ, а я хочу получить
ТСКЕТ то есть предложение или слово только наоборот.



C++
1
2
3
4
5
6
7
8
9
10
        char *text = new char;
    char new_text;
    gets(text);
    
    for(int i=strlen(text);i>=0;i--)
    {
        new_text += text[i]; // здесь я хочу чтобы у меня конечный результат записывался не как //массив а как одно целое сразу. Но он так не хочет работать.
    }
 
    cout<<new_text;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2012, 11:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему тип char не может делать вот так += (C++):

Почему в setnamedisc нужно использовать char * для установки значения, а при возвращении значения тип метода должен быть char* ? - C++
Вопрос такой, почему в методе setnamedisc нужно использовать char *s для установки значения, а при возвращении значения в методе...

Тип char ошыбка в обьявлении исправте хто может - C++
Всем здрасте! :) А почему когда я пишу так при обьявлении типа char: char name={f,r,a,n,c,a,null}; Компилятор выдает...

8-битовый тип signed char может представлять значения от -128 до 127 - C++
8-битовый тип signed char может представлять значения от -128 до 127 Кто может растолковать как это понимать, от 128 до 127 -...

Почему два char нельзя сравнивать так ==? - C++
Почему два char нельзя сравнивать так ==?

Thread: можно ли делать так, как в заданном коде и если нет, то почему? - C++
Всем привет. можно ли так делать? Если нет то почему. Спасибо. #include &lt;iostream&gt; #include &lt;thread&gt; #include &lt;chrono&gt; class...

Почему тип входящего параметра функции может отличаться от типа возвращаемого значения? - C++
Зачем здесь указываеться другой тип данных: double &amp;change_it(int i); Весь код: using namespace std; double...

18
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
05.09.2012, 11:44 #2
Потому что char* это простой указатель, а не умная строка с оператором +=.
К тому же ты создаешь new_text как char, это вообще одиночный символ, да и под text ты всего 1 char выделаешь.
0
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
05.09.2012, 11:50  [ТС] #3
а вообще как нибудь возможно со строками сделать такое += ?
0
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
05.09.2012, 11:51 #4
std::string
1
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
05.09.2012, 12:05  [ТС] #5
если можно по подробнее.
0
Пaтрик
416 / 391 / 39
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
05.09.2012, 12:05 #6
C++
1
2
std::string str = "123";
str += "123";
0
vendeme
-32 / 3 / 3
Регистрация: 22.06.2011
Сообщений: 88
05.09.2012, 12:10 #7
читай про перегрузку опраторов
0
David Sylva
1291 / 953 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
05.09.2012, 12:12 #8
Реверсирование строки можно сделать так
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
#include <algorithm> 
using namespace std; 
 
int main() 
{  
    string str = "Barca"; 
    reverse(str.begin(), str.end()); 
 
    cout << str << endl;
}
1
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
05.09.2012, 12:12 #9
C++
1
2
3
4
5
6
7
8
9
10
11
        char *text = new char[256];
    char* new_text = new char[256];
    gets(text);
    
    int n = 0;
    for(int i=strlen(text);i>=0;i--)
    {
        new_text[n++] = text[i]; // здесь я хочу чтобы у меня конечный результат записывался не как //массив а как одно целое сразу. Но он так не хочет работать.
    }
 
    cout<<new_text;
4
Пaтрик
416 / 391 / 39
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
05.09.2012, 12:17 #10
gets в новом стандарте признана устаревшей функцией.
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
05.09.2012, 12:19 #11
тип char может делать вот так +=

C++
1
2
char ch = 2;
ch += 2; // после этого ch уже 4
0
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
05.09.2012, 12:19  [ТС] #12
а что лучше использовать ?
0
Пaтрик
416 / 391 / 39
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
05.09.2012, 12:23 #13
C++
1
2
std::string str;
std::getline(std::cin, str);
1
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
05.09.2012, 12:25 #14
Цитата Сообщение от Maratovich Посмотреть сообщение
а что лучше использовать ?
лучше усвоить разницу между char и char*. тогда не будешь писать такого:
C++
1
char *ch = new char;
0
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
05.09.2012, 12:28  [ТС] #15
а что тогда лучше использовать?
0
05.09.2012, 12:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2012, 12:28
Привет! Вот еще темы с ответами:

Восьмибитный тип переменной (что за тип, но не BYTE и не CHAR? - C++
Вроде давно занимаюсь программированием на С++, но встала проблема... Есть некий массив переменных имеющих 8 битный размер... без знака...

Не могу преобразовать тип char в тип double - C++
Вся загвоздка в str1 и str2; #include &quot;stdafx.h&quot; #include &quot;conio.h&quot; #include&quot;stdlib.h&quot; #include &quot;cstdlib&quot; #include &lt;iostream&gt; ...

Std::fstream почему функция write принимает параметр char* а не unsigned char* (аля byte*) ? - C++
Ну собственно сабж... std::fstream fs; fs.write((char*)..) В случае бинарного потока я допустим пишу байты функцией write, как...

вот так задачка((( - C++
ввели количество человек к примеру ( 8 человек ); name| last name| year| start number| it number| previous result ...


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

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

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