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

Количество символов, отличных от латинских букв и пробелов - C++

Восстановить пароль Регистрация
 
Liquil
 Аватар для Liquil
213 / 198 / 31
Регистрация: 04.12.2013
Сообщений: 884
14.12.2013, 14:09     Количество символов, отличных от латинских букв и пробелов #1
Здравствуйте, нужно посчитать количество символов в строке, отличных от латинских букв и пробелов. Кажется, что ошибка закралась где-то в 24 строке
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "stdio.h"
#include "string.h"
#include <conio.h>
int kol(char*,int);
int main()
{
int Count, Length, i;
char str[80];
 
printf("Vvedite stroku:\n");
scanf("%s", str);
 
 
Length = strlen(str);
Count =kol(str, Length);
 
 
printf("Kolichestvo simvolov otlichnih ot latinskih bukv i probela %d\n", Count);
_getch();
}
int kol(char*str,int Length)
{int Count=0,i;
for (i = 0; i < Length; i++)
if (( str[i] <= 65 || str[i] >= 90 && str[i] <= 97 || str[i] >= 122)&&(str[i] == 32 )) Count++;
return Count;
} 
 
 
 
 
 
if (( str[i] <= 65 || str[i] >= 90 && str[i] <= 97 || str[i] >= 122)&&(str[i] == 32 )) Count++;
ошибка где-то здесь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2013, 14:09     Количество символов, отличных от латинских букв и пробелов
Посмотрите здесь:

C++ Определить наибольшую последовательность отличных от пробелов символов
Определить длину содержащейся в тексте максимальной последовательности символов, отличных от букв C++
Определить в каждом предложении текста колличество символов, отличных от букв и пробела C++
Определить длину содержащейся в тексте максимальной серии символов, отличных от букв латинского алфавита C++
дан текстовый файл. получить все его строки, содержащие более 20 символов, отличных от пробелов. C++
C++ Подсчитать, сколько было введено: латинских прописных букв, кириллических прописных букв, цифр, знаков переноса, прочих символов.
C++ Создать файл, ввести символы, вывести на экран количество не латинских букв, количество цифр
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Doksim
 Аватар для Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
14.12.2013, 14:15     Количество символов, отличных от латинских букв и пробелов #2
Цитата Сообщение от Liquil Посмотреть сообщение
Здравствуйте, нужно посчитать количество символов в строке, отличных от латинских букв и пробелов. Кажется, что ошибка закралась где-то в 24 строке
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "stdio.h"
#include "string.h"
#include <conio.h>
int kol(char*,int);
int main()
{
int Count, Length, i;
char str[80];
 
printf("Vvedite stroku:\n");
scanf("%s", str);
 
 
Length = strlen(str);
Count =kol(str, Length);
 
 
printf("Kolichestvo simvolov otlichnih ot latinskih bukv i probela %d\n", Count);
_getch();
}
int kol(char*str,int Length)
{int Count=0,i;
for (i = 0; i < Length; i++)
if (( str[i] <= 65 || str[i] >= 90 && str[i] <= 97 || str[i] >= 122)&&(str[i] == 32 )) Count++;
return Count;
} 
 
 
 
 
 
if (( str[i] <= 65 || str[i] >= 90 && str[i] <= 97 || str[i] >= 122)&&(str[i] == 32 )) Count++;
ошибка где-то здесь
текст ошибки кидайте.

Добавлено через 4 минуты
C++
1
if (( str[i] < 65 || str[i] > 90 && str[i] < 97 || str[i] > 122)&&(str[i] != ' ' )) Count++;
Liquil
 Аватар для Liquil
213 / 198 / 31
Регистрация: 04.12.2013
Сообщений: 884
14.12.2013, 15:08  [ТС]     Количество символов, отличных от латинских букв и пробелов #3
Цитата Сообщение от Doksim Посмотреть сообщение
текст ошибки кидайте.

Добавлено через 4 минуты
C++
1
if (( str[i] < 65 || str[i] > 90 && str[i] < 97 || str[i] > 122)&&(str[i] != ' ' )) Count++;
выдает 0 на выходе, если ввести, например, xxx65

Добавлено через 2 минуты
а нет, все впорядке, спасибо
Doksim
 Аватар для Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
14.12.2013, 15:19     Количество символов, отличных от латинских букв и пробелов #4
Цитата Сообщение от Liquil Посмотреть сообщение
выдает 0 на выходе, если ввести, например, xxx65

Добавлено через 2 минуты
а нет, все впорядке, спасибо
нзшт
ValeryS
Модератор
6405 / 4871 / 447
Регистрация: 14.02.2011
Сообщений: 16,166
14.12.2013, 15:24     Количество символов, отличных от латинских букв и пробелов #5
Цитата Сообщение от Doksim Посмотреть сообщение
(( str[i] <= 65 || str[i] >= 90 && str[i] <= 97 || str[i] >= 122)&&(str[i] == 32 ))
а что это за "волшебные" числа 65 90 97 122 32 ?
Doksim
 Аватар для Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
14.12.2013, 15:26     Количество символов, отличных от латинских букв и пробелов #6
Цитата Сообщение от ValeryS Посмотреть сообщение
а что это за "волшебные" числа 65 90 97 122 32 ?
ансикоды
ValeryS
Модератор
6405 / 4871 / 447
Регистрация: 14.02.2011
Сообщений: 16,166
14.12.2013, 15:37     Количество символов, отличных от латинских букв и пробелов #7
Цитата Сообщение от Doksim Посмотреть сообщение
ансикоды
вообще то я у ТС спрашивал
но так и быть расшифрую свой вопрос
во первых ASCII в шестнадцатеричном коде пишут
поскольку таблица в них составлена
но даже в них писать моветон
или писать коментарий что означают эти константы, потому что мало ли что они обозначают
или, что более правильно, писать символы
принцип самодокументируемой программы
Цитата Сообщение от Doksim Посмотреть сообщение
if (( str[i] <= 65 || str[i] >= 90 && str[i] <= 97 || str[i] >= 122)&&(str[i] == 32 )) Count++;
C++
1
if (( str[i] <= 'A'|| str[i] >= 'Z' && str[i] <= 'a' || str[i] >= 'z')&&(str[i] ==' ' )) Count++;
вот так более понятно ( о правильности условия не говорю)
в еще
первые 32 символа в таблице ASCII
занимают непечатные символы , перевод строки, табуляция и много чего еще
программа их тоже сосчитает
это надо ?
Doksim
 Аватар для Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
14.12.2013, 15:41     Количество символов, отличных от латинских букв и пробелов #8
Цитата Сообщение от ValeryS Посмотреть сообщение
во первых ASCII в шестнадцатеричном коде пишут
необязательно.
Цитата Сообщение от ValeryS Посмотреть сообщение
первые 32 символа в таблице ASCII
можно конечно не проверять но так более понятней.
Цитата Сообщение от ValeryS Посмотреть сообщение
if (( str[i] <= 'A'|| str[i] >= Z && str[i] <= 'a' || str[i] >= 'z')&&(str[i] ==' ' )) Count++;
а я и не знал что так можно. только в данном случае вот так:
C++
1
if (( str[i] < 'A'|| str[i] > Z && str[i] < 'a' || str[i] > 'z')&&(str[i] !=' ' )) Count++;
ValeryS
Модератор
6405 / 4871 / 447
Регистрация: 14.02.2011
Сообщений: 16,166
14.12.2013, 15:50     Количество символов, отличных от латинских букв и пробелов #9
Цитата Сообщение от Doksim Посмотреть сообщение
только в данном случае вот так:
ну я же сказал что о правильности условия не говорю
можно и так
C++
1
if( !((str[i]>='A' && str[i]<='Z') || (str[i]>='a' && str[i]<='z') || str[i] ==' ' )) Count++;
кому как удобней
Цитата Сообщение от Doksim Посмотреть сообщение
необязательно.
необязательно но желательно, можно ведь и в восмеричке написать
Цитата Сообщение от Doksim Посмотреть сообщение
а я и не знал что так можно.
а сам с символом пробела сравнивал
Цитата Сообщение от Doksim Посмотреть сообщение
str[i] != ' '
Doksim
 Аватар для Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
14.12.2013, 15:52     Количество символов, отличных от латинских букв и пробелов #10
Цитата Сообщение от ValeryS Посмотреть сообщение
необязательно но желательно, можно ведь и в восмеричке написать
покажите пример кода символа в шестнадцетиричной
ValeryS
Модератор
6405 / 4871 / 447
Регистрация: 14.02.2011
Сообщений: 16,166
14.12.2013, 15:55     Количество символов, отличных от латинских букв и пробелов #11
Цитата Сообщение от ValeryS Посмотреть сообщение
можно и так
а можно вообще вот так
C++
1
if( !( ( (str[i]|0x20)>='a' && (str[i]|0x20)<='z') || str[i] ==' ' ))
только уже придется расшифровывать
объяснить в чем прикол?

Добавлено через 30 секунд
Цитата Сообщение от Doksim Посмотреть сообщение
покажите пример кода символа в шестнадцетиричной
уже показал
Doksim
 Аватар для Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
14.12.2013, 15:58     Количество символов, отличных от латинских букв и пробелов #12
Цитата Сообщение от ValeryS Посмотреть сообщение
объяснить в чем прикол?
угу

Добавлено через 15 секунд
юбилейное сообщение)
ValeryS
Модератор
6405 / 4871 / 447
Регистрация: 14.02.2011
Сообщений: 16,166
14.12.2013, 16:07     Количество символов, отличных от латинских букв и пробелов #13
Doksim,
смотри
большие и малые буквы в латинском алфавите отличаются 6 битом (0x20)
A=0x41 a=0x61
B=0x42 b=0x62
и вот этим мы перегоняем буквы в малые, если они большие и ничего не делается если они малые
C++
1
ch|0x20
например
'A'|0x20= 'a'( 0x41|0x20=0x61)
'a'|0x20= 'a'( 0x61|0x20=0x61)

можно перегнать все в большие
C++
1
ch& ~0x20// =ch&0xDF
или поменять большие на малые и наоборот
C++
1
ch^0x20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2013, 16:12     Количество символов, отличных от латинских букв и пробелов
Еще ссылки по теме:

C++ Удалить из введенной строки все символы, отличные от прописных латинских букв и пробелов
Определить в массиве максимальную серию символов, отличных от букв C++
В массиве определить длину серии символов отличных от букв C++
C++ Определить, что в i-ом столбце матрицы число латинских букв не меньше числа пробелов
C++ Подсчитать количество символов отличных от заглавных латинских букв во всех словах массива

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

Или воспользуйтесь поиском по форуму:
Doksim
 Аватар для Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
14.12.2013, 16:12     Количество символов, отличных от латинских букв и пробелов #14
Цитата Сообщение от ValeryS Посмотреть сообщение
Doksim,
смотри
большие и малые буквы в латинском алфавите отличаются 6 битом (0x20)
A=0x41 a=0x61
B=0x42 b=0x62
и вот этим мы перегоняем буквы в малые, если они большие и ничего не делается если они малые
C++
1
ch|0x20
например
'A'|0x20= 'a'( 0x41|0x20=0x61)
'a'|0x20= 'a'( 0x61|0x20=0x61)

можно перегнать все в большие
C++
1
ch& ~0x20// =ch&0xDF
или поменять большие на малые и наоборот
C++
1
ch^0x20
Количество символов, отличных от латинских букв и пробелов
Yandex
Объявления
14.12.2013, 16:12     Количество символов, отличных от латинских букв и пробелов
Ответ Создать тему
Опции темы

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