Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
sergeu90
27 / 28 / 5
Регистрация: 17.10.2009
Сообщений: 739
1

не могу занести адрес символа в массив новый

05.03.2012, 00:50. Просмотров 616. Ответов 8
Метки нет (Все метки)

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
void  main()
{
        char s[10][10][10];
    char (*a)[10][10] = s;
 
        
 setlocale(LC_ALL,"Russian");
        std::cout << "Исходный массив:" << std::endl;
 
        srand(time(NULL));
 
        for(int m=0;m<10;m++)
        {
                for(int j=0;j<10;j++)
                {
                        for(int k=0;k<10;k++)
                        {
                                *(*(*(a+m)+j)+k)=rand() % 26 + 65;
                                std::cout << std::setw(3) << *(*(*(a+m)+j)+k);
                        }
 
                        std::cout << std::endl;
                }
 
                std::cout << std::endl;
        }
        int mas[100],i=0;
        char *pq;
        for(int m=0;m<10;m++)
                for(int j=0;j<10;j++)
                        for(int k=0;k<10;k++)
                                if(*(*(*(a+m)+j)+k) == 'Z')
                                {
                                pq=&a[m][j][k];
 
std::cout<<static_cast<void*>(pq)<<std::endl;
                                    
                                }
 
                        ///массив адресов
/*for(int m=0;m<i;m++)
    std::cout<<mas[m]<<"   ";*/
        system("pause");
}
мне нужно найти букву z и потом в новый массив записать ее адрес как это сделать вот
std::cout<<static_cast<void*>(pq)<<std::endl; так я только могу вывести адрес этой буквы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2012, 00:50
Ответы с готовыми решениями:

Найти простые числа и занести их в новый массив
Реализовать 3 функции, каждая из которых принимает указатель на массив и...

Занести в новый массив элементы, не являющиеся общими для двух заданных массивов
вот полное задание Даны два массива: А и B (M и N вводятся с клавиатуры), ...

Занести код символа в std::string
Всем привет. Есть задача: у нас есть std::vector&lt;char&gt; v; в вектор я...

Найти ошибку. В файл занести 100 записей: ФИО, адрес, возраст, рост, вес
Написать программу для решения следующей задачи. В файл занести 100 записей,...

Убедиться, что адрес первого элемента массива и адрес, хранящийся в указатели на этот массив равны.
Убедиться, что адрес первого элемента массива и адрес, хранящийся в указатели...

8
sandye51
программист С++
833 / 592 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
05.03.2012, 01:04 2
что за новый массив?
это массив адресов символов z?
0
sergeu90
27 / 28 / 5
Регистрация: 17.10.2009
Сообщений: 739
05.03.2012, 01:06  [ТС] 3
да
помогите как это сделать
0
sandye51
программист С++
833 / 592 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
05.03.2012, 01:10 4
объявляешь массив адресов
затем индекс текущей пустой позиции в заданном массиве

C++
1
2
3
4
5
6
7
typedef char* pchar;
pchar vector[100];
unsigned int index = 0;
 
..
vector[index++] = &(элемент массива);
..
а когда записываешь в этот массив новый адрес, то индекс этот соот-но увеличиваешь
1
sergeu90
27 / 28 / 5
Регистрация: 17.10.2009
Сообщений: 739
05.03.2012, 01:12  [ТС] 5
проблема в том что мне надо без vector сделать и в мой кусочек кода как то добавить запись адреса уже сижу думаю как его записать вывести адреса я могу
std::cout<<static_cast<void*>(pq)<<std::endl; вот так вот я вывожу адрес своей буквы z
0
sandye51
программист С++
833 / 592 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
05.03.2012, 01:15 6
sergeu90, vector это я так просто массив назвал, а не std::vector
так что не тупи) как ты сказал тебе надо - так я тебе и написал
0
sergeu90
27 / 28 / 5
Регистрация: 17.10.2009
Сообщений: 739
05.03.2012, 01:17  [ТС] 7
а мой код можете доработаь и показать а то я че то не догоняю
0
sandye51
программист С++
833 / 592 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
05.03.2012, 01:18 8
могу, но уже не сегодня - сейчас мне лень)
1
sergeu90
27 / 28 / 5
Регистрация: 17.10.2009
Сообщений: 739
05.03.2012, 01:30  [ТС] 9
*(*(*(a+m)+j)+k вот с этого массива пробыал адрес извлечь именно буквы когда находу не извлекаеться а мусор какой то

Добавлено через 9 минут
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
void  main()
{
        char s[10][10][10];
    char (*a)[10][10] = s;
 
        
 setlocale(LC_ALL,"Russian");
        std::cout << "Исходный массив:" << std::endl;
 
        srand(time(NULL));
 
        for(int m=0;m<10;m++)
        {
                for(int j=0;j<10;j++)
                {
                        for(int k=0;k<10;k++)
                        {
                                *(*(*(a+m)+j)+k)=rand() % 26 + 65;
                                std::cout << std::setw(3) << *(*(*(a+m)+j)+k);
                        }
 
                        std::cout << std::endl;
                }
 
                std::cout << std::endl;
        }
        typedef char* pchar;
pchar vector[100];
unsigned int index = 0;
        int mas[100],i=0;
        //char *pq;
        for(int m=0;m<10;m++)
                for(int j=0;j<10;j++)
                        for(int k=0;k<10;k++)
                                if(*(*(*(a+m)+j)+k) == 'Z')
                                {
                            
                                    vector[index++]=&a[m][j][k];
                                    
                                    
 
 
                                    
                                }
 
                        ///массив 
for(int m=0;m<index;m++)
    std::cout<<static_cast<void*>(vector[m])<<std::endl;
        system("pause");
}
вроде сделал
0
05.03.2012, 01:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2012, 01:30

Посчитать адрес символа в строке.
Доброго времени суток, Уважаемые Форумчане! Будьте добры помогите решить...

Как можно определить адрес символа?
есть элементы vector &lt;string&gt;, в них записан текст, нельзя ли из них получить...

Как после каждого 60-го символа сделать новый абзац?
Как после каждого 60-го символа сделать новый абзац? Есть код, но он выводит...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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