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

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

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

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

05.09.2012, 11:36. Просмотров 559. Ответов 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;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
05.09.2012, 11:44     Почему тип char не может делать вот так += #2
Потому что char* это простой указатель, а не умная строка с оператором +=.
К тому же ты создаешь new_text как char, это вообще одиночный символ, да и под text ты всего 1 char выделаешь.
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
05.09.2012, 11:50  [ТС]     Почему тип char не может делать вот так += #3
а вообще как нибудь возможно со строками сделать такое += ?
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
05.09.2012, 11:51     Почему тип char не может делать вот так += #4
std::string
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
05.09.2012, 12:05  [ТС]     Почему тип char не может делать вот так += #5
если можно по подробнее.
Пaтрик
 Аватар для Пaтрик
395 / 388 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
05.09.2012, 12:05     Почему тип char не может делать вот так += #6
C++
1
2
std::string str = "123";
str += "123";
vendeme
 Аватар для vendeme
-32 / 3 / 3
Регистрация: 22.06.2011
Сообщений: 88
05.09.2012, 12:10     Почему тип char не может делать вот так += #7
читай про перегрузку опраторов
David Sylva
 Аватар для David Sylva
1284 / 946 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
05.09.2012, 12:12     Почему тип char не может делать вот так += #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;
}
zitxbit
Master C/C++
 Аватар для zitxbit
87 / 739 / 75
Регистрация: 11.04.2012
Сообщений: 971
05.09.2012, 12:12     Почему тип char не может делать вот так += #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;
Пaтрик
 Аватар для Пaтрик
395 / 388 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
05.09.2012, 12:17     Почему тип char не может делать вот так += #10
gets в новом стандарте признана устаревшей функцией.
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
05.09.2012, 12:19     Почему тип char не может делать вот так += #11
тип char может делать вот так +=

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

тип char C++
C++ Из типа char в тип int
C++ FindWindow() и тип char*
C++ Почему два char нельзя сравнивать так ==?
C++ Почему тип входящего параметра функции может отличаться от типа возвращаемого значения?

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

Или воспользуйтесь поиском по форуму:
Пaтрик
 Аватар для Пaтрик
395 / 388 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
05.09.2012, 12:35     Почему тип char не может делать вот так += #19
novi4ok, воля случая.
Yandex
Объявления
05.09.2012, 12:35     Почему тип char не может делать вот так +=
Ответ Создать тему
Опции темы

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