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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2009, 00:18   #1
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
Вопрос Функции tolower,islower,isupper

Если кто знаком с функциями tolower,islower,isupper, дайте пожалуйста с каждой примитивный пример с маленьким коментом, как их использовать. Зараннее благодарю. ПО книге не понимаю.
Syltan вне форума Ответить с цитированием
Старый 06.09.2009, 00:25   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
#include <iostream>
#include <ctype.h>
using namespace std;


int main() {
char *str = "StriNG";
int i;

// выводим только маленькие буквы
for(i=0; i<strlen(str); i++)
 if(islower(str[i])) cout<<str[i];
cout<<endl;
// теперь только большие
for(i=0; i<strlen(str); i++)
 if(isupper(str[i])) cout<<str[i];
cout<<endl;

// теперь все слово маленькими буквами
for(i=0; i<strlen(str); i++)
 cout<<(char)tolower(str[i]);
cout<<endl;
 
cin.get();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.09.2009, 00:36   #3
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Ну, например, когда нужно отреагировать на введённую команду не зависимо от того какими символами она написана - мелкими или заглавными...

Пример:
Код:
switch (toupper(lpCmdLine[1])) // lpCmdLine - параметры командной строки
{
case 'P':
	return 1; // не важно какая буква в параметре (мелкая или заглавная)
case 'S':
	return 2;
case 'C':
	return 3;
default:
	return 0;
}
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 06.09.2009, 17:26   #4
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию

Почему если не преобразовать к типу чар эту строку:
Код:
cout<<(char)tolower(str[i]);
выведется не все буквы маленькие,а выведется число
236238235238238238241.....
Golovastik вне форума Ответить с цитированием
Старый 06.09.2009, 17:50   #5
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Golovastik Посмотреть сообщение
Почему если не преобразовать к типу чар эту строку:
Код:
cout<<(char)tolower(str[i]);
выведется не все буквы маленькие,а выведется число
236238235238238238241.....
потому как tolower() возвращает тип int, и cout интерпретирует это как число.
netrino вне форума Ответить с цитированием
Старый 07.09.2009, 14:19   #6
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию

Вот в качестве примера ещё. Правда где-то ошибочка есть.
Код:
#include <iostream>
#include <ctype.h>
using namespace std;

int main()
{
setlocale(0,"");

char *d = "Могучий Рыцарь";
while(*d)
{
	if(isupper(*d))
	*d = tolower(*d);
	d++;
}
cout<<"Результат\n"<<d;
cin.get();
}
Golovastik вне форума Ответить с цитированием
Старый 07.09.2009, 17:52   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Golovastik
Правда где-то ошибочка есть.
Во-первых, вы пытаетесь изменить константную строку.
Во-вторых, эти функции (isupper() и tolower()) не работают с русскими символами.

Код:
#include <iostream>
#include <ctype.h>
using namespace std;

int main()
{
char d[] = "Hello WORLD";
char *p = d;
while(*p)
{
    if(isupper(*p))
     *p = tolower(*p);
    p++;
}
cout<<d;
cin.get();
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с функцией islower() Greynvi4 Общие вопросы C/C++ 3 07.08.2009 21:37
Чем отличается описание функции от определения функции в С++? Go6a Помощь студентам 4 18.07.2009 18:07
Функции. Передача массива в качестве параметра функции. Wia Помощь студентам 2 17.03.2009 14:57
Функции furian Общие вопросы C/C++ 3 18.12.2007 12:48