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

Строки. - C++

Восстановить пароль Регистрация
 
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,693
19.10.2011, 15:25     Строки. #1
В какой - то ступор впал.
Нужно считать символ, а затем строку.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
 
int main () {
    char ch;
    std::string str;
    std::cin >> ch;
    std::cin.ignore ('\n');
    std::getline (std::cin, str);
    //
    std::cout << str;
    //
    return 0;
}
работает неверно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2011, 15:25     Строки.
Посмотрите здесь:

C++ Указать номер строки, максимально удаленной от первой строки заданной матрицы
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней C++
C++ Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки
C++ Функция перезаписывает символы строки заданным количеством символов другой строки
Удалить строки динамической матрицы, начиная со строки К1 и до строки К2 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
19.10.2011, 15:28     Строки. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
 
int main () {
    char ch;
    std::string str;
    std::cin >> ch;
    std::cin.ignore (1, '\n');
    std::getline (std::cin, str);
    //
    std::cout << str;
    //
    return 0;
}
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,693
19.10.2011, 16:13  [ТС]     Строки. #3
точно, спасибо )

Добавлено через 43 минуты
Не стал новую тему создавать.

Почему такой вариант не работает -
C++
1
std::transform (str.begin(), str.end(), str.begin(), std::toupper);
А такой
C++
1
std::transform (str.begin(), str.end(), str.begin(), ::toupper);
или такой
C++
1
std::transform (str.begin(), str.end(), str.begin(), toupper);
работают?
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
19.10.2011, 17:25     Строки. #4
Дело в том, что таких функций в C++ две, одна находится в <cctype>, а вторая в <locale>. Либо не указывай пространство имён, либо сделай так
C++
1
2
std::transform (str.begin(), str.end(), str.begin(), 
                static_cast<int(*)(int)>(std::toupper));
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,693
19.10.2011, 17:32  [ТС]     Строки. #5
rangerx, но я в решении указал библиотеку cctype, то есть функцию он берет от туда. Или главное сам факт, что их две?)
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
19.10.2011, 18:01     Строки. #6
Цитата Сообщение от neske Посмотреть сообщение
что их две?
Ну да, одна унаследована из Си -
C++
1
int toupper ( int c );
,
вторая чисто С++`шная -
C++
1
2
template <class charT>
charT toupper ( charT c, const locale& loc );
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
19.10.2011, 19:34     Строки. #7
neske, достаточно подключить какой-нибудь заголовок, в котором используется <locale>(например, <iostream>) и можешь считать, что и <locale> ты подключил тоже.
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,693
19.10.2011, 19:38  [ТС]     Строки. #8
rangerx, а я и не знал о таком.. спасибо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2011, 10:50     Строки.
Еще ссылки по теме:

Упорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A C++
Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк C++
C++ Вычислить длину введенной строки и вывести символы строки с четными индексами

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

Или воспользуйтесь поиском по форуму:
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
20.10.2011, 10:50     Строки. #9
Цитата Сообщение от neske Посмотреть сообщение
но я в решении указал библиотеку cctype, то есть функцию он берет от туда. Или главное сам факт, что их две?
Будет использована та функция, которая при просмотре заголовочных файлов будет найдена первая (см. Википедия). Файл clocale может быть неявно подключен в других заголовочных файлах
Yandex
Объявления
20.10.2011, 10:50     Строки.
Ответ Создать тему
Опции темы

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