Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Помогите решить
Показать сообщение отдельно

Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата Iska:
Зачем так много сравнений, зачем массив? Просто пробегаемся указателем до конца строки, проверяя диапазон кода символа от 'a' до 'z', и при попадании вычитаем от него разницу ('a'-'A'). »
Понял твою идею, но не понял немного что из чего вычитается?

Код 'A' = 65, 'a' = 97, если вычитать 97 - 65, то мы получим разницу, т.е. 32 и на всех парах B = b, C = c эта разница 32 неизменна

UpperCase
Код: Выделить весь код
65 = A
66 = B
67 = C
68 = D
69 = E
70 = F
71 = G
72 = H
73 = I
74 = J
75 = K
76 = L
77 = M
78 = N
79 = O
80 = P
81 = Q
82 = R
83 = S
84 = T
85 = U
86 = V
87 = W
88 = X
89 = Y
90 = Z

LowerCase
Код: Выделить весь код
97 = a
98 = b
99 = c
100 = d
101 = e
102 = f
103 = g
104 = h
105 = i
106 = j
107 = k
108 = l
109 = m
110 = n
111 = o
112 = p
113 = q
114 = r
115 = s
116 = t
117 = u
118 = v
119 = w
120 = x
121 = y
122 = z


У меня ничего не приходит на ум кроме как такого изврата.

Код: Выделить весь код
...
   AnsiString str = "MySting#1TeSt-результат проверки";
   AnsiString newstr = "";
   int len = str.Length();
   char *ch;
   ch = str.c_str();

   for(int i = 0; i <= len; i++){
	  if(97 <= (int)ch[i] && 122 >= (int)ch[i])
		 newstr += ch[i];
	  else if(65 <= (int)ch[i] && 90 >= (int)ch[i])
		 newstr += char((int)ch[i] + 32);
	}
   Memo1->Lines->Add(newstr);
...
P.S. Немного наоборот сделал: UpperCase -> LowerCase

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 14:35, 31-12-2015 | #4

Название темы: Помогите решить