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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.80
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
#1

Cctype - C++

25.10.2010, 14:24. Просмотров 2474. Ответов 15
Метки нет (Все метки)

Ку, как правильно использовать функцию "isalpha ()" с pointer
если можно с примером.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2010, 14:24     Cctype
Посмотрите здесь:

C++ Написать программу с использованием функции cctype
Использование cctype C++
C++ Аналог функции isalpha() (<cctype>)
C++ Функции <cctype>

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
25.10.2010, 14:27     Cctype #2
кликни
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
25.10.2010, 14:30     Cctype #3
C
1
2
3
4
5
6
char string[] = "example";
char *ptr = &string[1];
 
if(isalpha(*ptr)) {
    // ...
}
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
25.10.2010, 17:04  [ТС]     Cctype #4
Можно пример по нагляднее?
Kastaneda
Форумчанин
Эксперт С++
4469 / 2831 / 224
Регистрация: 12.12.2009
Сообщений: 7,201
Записей в блоге: 1
Завершенные тесты: 1
25.10.2010, 17:07     Cctype #5
C++
1
2
3
4
5
6
char ch;
cin>>ch;
char* ptr=&ch;
if(isalpha(*ptr)){
// если ввели букву, то...
}
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
25.10.2010, 17:10  [ТС]     Cctype #6
а чтоб целое слово вывел надо его по циклу прогнать?
он у меня только одну букву выводит.
Kastaneda
Форумчанин
Эксперт С++
4469 / 2831 / 224
Регистрация: 12.12.2009
Сообщений: 7,201
Записей в блоге: 1
Завершенные тесты: 1
25.10.2010, 17:16     Cctype #7
Цитата Сообщение от Hardcore Посмотреть сообщение
он у меня только одну букву выводит.
Кто он?
Можно через указатель, если строка заканчивается символом '\0'
C++
1
cout<<ptr;
Добавлено через 23 секунды
выведет все слово.
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
25.10.2010, 17:22  [ТС]     Cctype #8
он это мой компилятор) условно .
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
int main () {
    char ch;
cin>>ch;
char* ptr=&ch;
if(isalpha(*ptr)){
cout<<ptr;
}
return 0;
}
выводит это:
fgfg[]fgvh
f╠╠╠╠H■ Для продолжения нажмите любую клавишу . . .
Kastaneda
Форумчанин
Эксперт С++
4469 / 2831 / 224
Регистрация: 12.12.2009
Сообщений: 7,201
Записей в блоге: 1
Завершенные тесты: 1
25.10.2010, 17:53     Cctype #9
Странно, должен был вывести адрес! Так он букву не покажет, подобная конструкция работает только для строки:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
int main () {
        char ch[80];
cin>>ch;
char* ptr=ch;
cout<<ptr;
return 0;
}
вот так выведет введенное слово.
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
25.10.2010, 18:19  [ТС]     Cctype #10
ввел это.
1234sdfghj[
вывел это.
1234sdfghj[
Для продолжения нажмите любую клавишу . . .
что то у тя не то.
Kastaneda
Форумчанин
Эксперт С++
4469 / 2831 / 224
Регистрация: 12.12.2009
Сообщений: 7,201
Записей в блоге: 1
Завершенные тесты: 1
25.10.2010, 18:22     Cctype #11
Цитата Сообщение от Hardcore Посмотреть сообщение
ввел это.
1234sdfghj[
вывел это.
1234sdfghj[
Для продолжения нажмите любую клавишу . . .
что то у тя не то.
Цитата Сообщение от Kastaneda Посмотреть сообщение
вот так выведет введенное слово.
и в чем тут не то?
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
25.10.2010, 18:48  [ТС]     Cctype #12
ты забыл isalpha;

Добавлено через 1 минуту
я забыл уточнить тебе. isalpha как фильтр. он должен оставить только буквы убрав всё остальное.
Kastaneda
Форумчанин
Эксперт С++
4469 / 2831 / 224
Регистрация: 12.12.2009
Сообщений: 7,201
Записей в блоге: 1
Завершенные тесты: 1
25.10.2010, 18:57     Cctype #13
Цитата Сообщение от Hardcore Посмотреть сообщение
я забыл уточнить тебе. isalpha как фильтр. он должен оставить только буквы убрав всё остальное.
Вот это поворот событий)))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
int main () {
char ch[80];
cin>>ch;
char* ptr=ch;
int len=strlen(ptr);
for(int i=0;i<len;i++)
   if(isalpha(ptr[i])){
      cout<<ptr[i];
}
cout<<endl;
system("pause");
return 0;
}
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
25.10.2010, 19:13  [ТС]     Cctype #14
Спасибо большое. А можно теперь с подробными коментами. Я тут всего не понял.
Kastaneda
Форумчанин
Эксперт С++
4469 / 2831 / 224
Регистрация: 12.12.2009
Сообщений: 7,201
Записей в блоге: 1
Завершенные тесты: 1
25.10.2010, 19:24     Cctype #15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
int main () {
char ch[80];// массив из 80 символов (байт)
cin>>ch;// вводим
char* ptr=ch;//создаем указатель на массив
int len=strlen(ptr);// len равна длине введенной строки (ф-ция strlen())
for(int i=0;i<len;i++)// перебираем все символы в строке
   if(isalpha(ptr[i])){// если символ - буква
      cout<<ptr[i];// выводим
}
cout<<endl;// переход на следующую строку
system("pause");//press any key
return 0;// ноль в виндовз, что б знал, что все в порядке
}
Добавлено через 1 минуту
и еще вот
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
25.10.2010, 19:34  [ТС]     Cctype #16
Вопрос. Почему ты не использовал cctype библиотеку?
Yandex
Объявления
25.10.2010, 19:34     Cctype
Ответ Создать тему
Опции темы

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