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

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

Войти
Регистрация
Восстановить пароль
 
сержи
6 / 6 / 0
Регистрация: 03.07.2010
Сообщений: 222
#1

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

01.11.2013, 01:44. Просмотров 394. Ответов 10
Метки нет (Все метки)

Всем добрый вечер. помогите записать программу без: [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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помогите переписать программу без использования индексации (C++):

Переписать программу без использования указателей - C++
Всем привет. Есть программа с указателями , как сделать её без указателей? #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; ...

Графы, переписать программу без использования iterator-ов - C++
Для неориентированного графа сохранить его в виде списка смежности с возможностью добавления и удаления ребер и вершин. Построить алгоритм...

Работа со строками. Переписать программу без использования библиотеки <sstream> - C++
Добрый день! Помогите пожалуйста преобразовать программу, которая заменяет выбранное вами слово на другое ваше слово в строке, которую вы...

Как переписать код без использования set? - C++
template &lt;class T&gt; // шабло обработки данных array&lt;char&gt; array&lt;T&gt;::proceed() { std::set&lt;char&gt; set; // старый ...

Переписать код без использования операций сдвига и "битового and" - C++
как переписать (num &amp; ((1) &lt;&lt; k)) != 0не используя операцию &amp; и &lt;&lt;? Помогите, пожалуйста!

Переделать программу без использования функций - C++
//Vicesliti: //1.Min i Max znacenie //2.Opredeliti raznitu mejde Max i Min znaceniem //3.Opredeliti kpllicestvo znacenii ravnih cem...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Psilon
Master of Orion
Эксперт .NET
5888 / 4785 / 633
Регистрация: 10.07.2011
Сообщений: 14,405
Записей в блоге: 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
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
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
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.11.2013, 02:24 #4
Цитата Сообщение от Psilon Посмотреть сообщение
это чтоль?
А выход из цикла?
Psilon
Master of Orion
Эксперт .NET
5888 / 4785 / 633
Регистрация: 10.07.2011
Сообщений: 14,405
Записей в блоге: 5
Завершенные тесты: 4
01.11.2013, 09:10 #5
alsav22, склероз...
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
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
Эксперт .NET
5888 / 4785 / 633
Регистрация: 10.07.2011
Сообщений: 14,405
Записей в блоге: 5
Завершенные тесты: 4
01.11.2013, 09:29 #7
Цитата Сообщение от ValeryS Посмотреть сообщение
это перевод больших букв в маленькие
Это как раз понятно. А вот способ интересный, надо осмыслить...
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
01.11.2013, 09:43 #8
Цитата Сообщение от Psilon Посмотреть сообщение
А вот способ интересный, надо осмыслить...
А че его осмысливать открой таблицу ASCII и увидишь что большие от малых отличаются 6 битом
A-0x41 a-0x61
в результате что большие попадутся что малые все едино
ограничение нужно сделать чтобы непечатные символы в цифры не превратились(но это уже пускай ТС думает)
итого из больших в малые |=0x20
из малых в большие &=~0x20
большие в малые и наоборот ^=0x20
Psilon
Master of Orion
Эксперт .NET
5888 / 4785 / 633
Регистрация: 10.07.2011
Сообщений: 14,405
Записей в блоге: 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
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
01.11.2013, 09:49 #10
Цитата Сообщение от Psilon Посмотреть сообщение
Просто без магических констант это выглядело бы намного лучше:
может быть
просто мне она (0х20)уже в подкорку вбилась
а в это
Цитата Сообщение от Psilon Посмотреть сообщение
'A' ^ 'a'
я еще вникать буду
Psilon
Master of Orion
Эксперт .NET
5888 / 4785 / 633
Регистрация: 10.07.2011
Сообщений: 14,405
Записей в блоге: 5
Завершенные тесты: 4
01.11.2013, 09:52 #11
ValeryS, ну вот не всем вбилась
например я вот на управляемых языках о таком бито.... давно уже не помню, важнее методика...
Так что объяснение, что это за 'A' ^ 'a' как раз-таки понятно, а в само число я буду вникать...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2013, 09:52
Привет! Вот еще темы с ответами:

Помогите переписать программу с С на С++ (Система счисления) - C++
#include &lt;stdio.h&gt; #include &lt;math.h&gt; void dvoich(int x1) { int i, b; long c = 0; for(i=0;x1 &gt;...

Как составить программу учета без использования базы данных? - C++
Пожалуйста помогите новичку. Надо составить программу без использование базы данных. Имеются сведения о парке компьютеров. Каждый...

Помогите найти ошибку или переписать программу! - C++
Здравствуйте! Никак не могу справиться с одной задачей. Я и несколько одногруппников &quot;прокрутили в голове&quot; саму задачу и все говорят, что...

Линейный алгоритм, переписать программу без условных операторов - C++
Можно ли как-то переписать данную программу без условных операторов? Что бы алгоритм был линейный? #include &lt;iostream&gt; using namespace...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.11.2013, 09:52
Ответ Создать тему
Опции темы

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