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

Помогите переписать программу без использования индексации - C++

Восстановить пароль Регистрация
 
сержи
6 / 6 / 0
Регистрация: 03.07.2010
Сообщений: 222
01.11.2013, 01:44     Помогите переписать программу без использования индексации #1
Всем добрый вечер. помогите записать программу без: [i]
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
#include <iostream>
#include <string>
using std::cout;
using std::cin;
 
const int N=50;
 
char* mystrlwr(char* str)
{
int i=0;
while (str[i])
{
if (str[i]>='A' && str[i]|<='Z')
 
str[i]+=32;
i++;
}
return str;
}
int main()
{
char str1[N];
cout<<"Input string: ";
cin.getline(str1, N);
 
cout<<"my strlwr: "<<mystrlwr(str1)<<'\n';
system("pause");
return 0;
}
Имеется виду, вот это: str[i]
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2013, 01:44     Помогите переписать программу без использования индексации
Посмотрите здесь:

Переписать код без использования операций сдвига и "битового and" C++
Помогите найти ошибку или переписать программу! C++
C++ Помогите переписать программу с С на С++ (Система счисления)
работа со строками, без индексации C++
Составить программу для вычисления значения выражения (без использования макрокоманды MAX и MIN) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Psilon
Master of Orion
 Аватар для Psilon
5738 / 4686 / 619
Регистрация: 10.07.2011
Сообщений: 14,160
Записей в блоге: 5
Завершенные тесты: 4
01.11.2013, 02:18     Помогите переписать программу без использования индексации #2
сержи,
C++
1
2
3
4
5
6
7
8
9
void mystrlwr(char* str)
{
   char* c = str;
   while (*c)
   {
      if (*c>='A' && *c<='Z')
          *c +=32;
   }
}
это чтоль?
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
01.11.2013, 02:22     Помогите переписать программу без использования индексации #3
C++
1
2
3
4
5
6
7
8
void mystrlwr(char *str) {
    while (*str) {
        if (*str >= 'A' && *str <= 'Z'){
                *str += 32;
        }
        str++;
    }
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.11.2013, 02:24     Помогите переписать программу без использования индексации #4
Цитата Сообщение от Psilon Посмотреть сообщение
это чтоль?
А выход из цикла?
Psilon
Master of Orion
 Аватар для Psilon
5738 / 4686 / 619
Регистрация: 10.07.2011
Сообщений: 14,160
Записей в блоге: 5
Завершенные тесты: 4
01.11.2013, 09:10     Помогите переписать программу без использования индексации #5
alsav22, склероз...
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,044
01.11.2013, 09:26     Помогите переписать программу без использования индексации #6
Цитата Сообщение от сержи Посмотреть сообщение
char* mystrlwr(char* str)
{
int i=0;
while (str[i])
{
if (str[i]>='A' && str[i]|<='Z')
str[i]+=32;
i++;
}
это перевод больших букв в маленькие
C++
1
2
3
4
5
6
7
8
char* mystrlwr(char* str)
{
while (*str)
 {
  *str |=0x20;
   str++;
  }
}
Psilon
Master of Orion
 Аватар для Psilon
5738 / 4686 / 619
Регистрация: 10.07.2011
Сообщений: 14,160
Записей в блоге: 5
Завершенные тесты: 4
01.11.2013, 09:29     Помогите переписать программу без использования индексации #7
Цитата Сообщение от ValeryS Посмотреть сообщение
это перевод больших букв в маленькие
Это как раз понятно. А вот способ интересный, надо осмыслить...
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,044
01.11.2013, 09:43     Помогите переписать программу без использования индексации #8
Цитата Сообщение от Psilon Посмотреть сообщение
А вот способ интересный, надо осмыслить...
А че его осмысливать открой таблицу ASCII и увидишь что большие от малых отличаются 6 битом
A-0x41 a-0x61
в результате что большие попадутся что малые все едино
ограничение нужно сделать чтобы непечатные символы в цифры не превратились(но это уже пускай ТС думает)
итого из больших в малые |=0x20
из малых в большие &=~0x20
большие в малые и наоборот ^=0x20
Psilon
Master of Orion
 Аватар для Psilon
5738 / 4686 / 619
Регистрация: 10.07.2011
Сообщений: 14,160
Записей в блоге: 5
Завершенные тесты: 4
01.11.2013, 09:48     Помогите переписать программу без использования индексации #9
ValeryS, да я уже понял. Просто без магических констант это выглядело бы намного лучше:
C++
1
2
3
4
5
void mystrlwr(char* str)
{
    for (const char charDif = 'A' ^ 'a'; *str; str++)
        *str |= charDif;
}
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,044
01.11.2013, 09:49     Помогите переписать программу без использования индексации #10
Цитата Сообщение от Psilon Посмотреть сообщение
Просто без магических констант это выглядело бы намного лучше:
может быть
просто мне она (0х20)уже в подкорку вбилась
а в это
Цитата Сообщение от Psilon Посмотреть сообщение
'A' ^ 'a'
я еще вникать буду
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2013, 09:52     Помогите переписать программу без использования индексации
Еще ссылки по теме:

Составьте программу без использования строковых переменных, которая разбивает число n на цифры и печатает их в C++
C++ Графы, переписать программу без использования iterator-ов
Работа со строками. Переписать программу без использования библиотеки <sstream> C++

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

Или воспользуйтесь поиском по форуму:
Psilon
Master of Orion
 Аватар для Psilon
5738 / 4686 / 619
Регистрация: 10.07.2011
Сообщений: 14,160
Записей в блоге: 5
Завершенные тесты: 4
01.11.2013, 09:52     Помогите переписать программу без использования индексации #11
ValeryS, ну вот не всем вбилась
например я вот на управляемых языках о таком бито.... давно уже не помню, важнее методика...
Так что объяснение, что это за 'A' ^ 'a' как раз-таки понятно, а в само число я буду вникать...
Yandex
Объявления
01.11.2013, 09:52     Помогите переписать программу без использования индексации
Ответ Создать тему
Опции темы

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