Итак, это программа, которую я использовал для преобразования нижнего регистра в верхний. Можете ли вы сказать мне, почему мы используем эту штуку?[(str[i]>=97 && str[i]‹=122)] в следующем раздел кода?
#include <iostream.h>
#include <conio.h>
#include <string.h>
void main()
{
clrscr();
char str[20];
int i;
cout << "Enter the String (Enter First Name) : ";
cin >> str;
for (i = 0; i <= strlen(str); i++) {
if (str[i] >= 97 && str[i] <= 122) //Why do we use this???
{
str[i] = str[i] - 32;
}
}
cout << "\nThe String in Uppercase = " << str;
getch();
}
'a'
, 122 — это ASCII-код'z'
. Все символы между ними (и включая их) обычно называются строчными буквами, не так ли? - person axiac   schedule 31.01.2017std::toupper
. Он использует кодировку ASCII и поэтому не является переносимым. И он не используетstd::string
и подвержен переполнению буфера. - person Some programmer dude   schedule 31.01.2017#include<string.h>
устарел с 90-х годов, а#include<iostream.h>
, а такжеvoid main
никогда не были законным стандартом C++. Вы должны получить лучший и более современный код, чтобы учиться. - person Baum mit Augen   schedule 31.01.2017if(str[i]>='a' && str[i]<='z')
, так как это намного читабельнее. - person Algirdas Preidžius   schedule 31.01.2017"
) вместо одинарных ('
)? - person Algirdas Preidžius   schedule 31.01.2017"
вместо'
"
используется для строк.'
используется для обозначения персонажа. - person drescherjm   schedule 31.01.2017if(str[i]>='a' && str[i]<='z')
все еще не переносим. Этот трюк действительно работает для чисел от'0'
до'9'
, потому что C++ специально гарантирует последовательное числовое представление цифр, но не букв. - person Christian Hackl   schedule 31.01.2017