Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 09.10.2009
Сообщений: 89
1

Массив строк

15.03.2010, 22:10. Показов 878. Ответов 11
Метки нет (Все метки)

Извините меня, за такой глупый вопрос, но я почему то не могу понять это словосочитание. Правильно ли я понимаю - это двумерный массив?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2010, 22:10
Ответы с готовыми решениями:

Сформировать массив строк. Удалить из него одинаковые строки. Сформировать массив строк. Удалить из него К последних строк
Сформировать массив строк. Удалить из него одинаковые строки. Сформировать массив строк. Удалить из...

Вводится массив строк текста с неизвестным заранее количеством строк
1)Вводится массив строк текста с неизвестным заранее количеством строк.Ввод текста заканчивается,...

Используя функцию копирования строк, организуйте конкатенацію и копирование строк в четвертый массив, содержащий полные имена
Пожалуйста с этим заданием. Написать программу, которая описывает четыре массива. Три первых...

Ввод нескольких строк или массив строк
У меня есть массив строк. Нужно ввести несколько строк, но не получается. Вот код: int main()...

11
1259 / 797 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
15.03.2010, 22:23 2
Правильно.
0
быдлокодер
1721 / 908 / 106
Регистрация: 04.06.2008
Сообщений: 5,639
15.03.2010, 22:29 3
С точки зрения C массив строк это массив указателей на стоки. Смотри
C++
1
   char* massiv []= {"stroka_1","stroka_2", "stroka_2"};
Это типа массив строк. Но только типа!
ЕСли ты посмотришь на этот массив в отладчике, то обнаружишь, что он представляет из себя всего три ячейки памяти! Ну, например, так:

1234 5666 6767

Вот и весь массив
КАждая ячейка содержит адрес строки. То есть stroka_1 расположена по адресу 1234, stroka_2 по адресу 5666, stroka_3 по адресу 6767

КАк правило эти адреса идут подряд. Но я встречал и имено,так, вразнобой.

Добавлено через 55 секунд
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Правильно.
Нет, неправильно, не сбивайте людей с толку.
1
1259 / 797 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
15.03.2010, 23:13 4
Нет, неправильно, не сбивайте людей с толку.
Ты говоришь про меня без основательно,
Ты привёл массив указателей на строки и всё.

Добавлено через 12 минут
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
 
 
int main(){
char matrix[10][10] = {
"Ignat",
"Sergey",
"ISergey",
 
"Petr",
"Pavel",
"Tom",
 
"DDD",
"sss",
"aaaaa",
"vvv"
};
 
unsigned int i,j;
for(i=0;i<10;i++){
    for(j=0;j<matrix[i][j]!='\0';j++){
if(matrix[i][j]!='\0')printf("%c ",matrix[i][j]);
    }
printf("\n");
 
}
printf("\n");
//Второй способ
for(i=0;i<10;i++){
    for(j=0;j<strlen(&matrix[i][0]);j++){
printf("%c ",matrix[i][j]);
    }
printf("\n");
 
}
 
 
 
return 0;
}
Добавлено через 1 минуту
kravam:
Не надо сразу делать выводы.

Добавлено через 11 минут
Одно есть преимущество если использовать массив указателей:
сортировка не требует перезаписи между строками, просто указатели пере наводятся.
1
быдлокодер
1721 / 908 / 106
Регистрация: 04.06.2008
Сообщений: 5,639
15.03.2010, 23:21 5
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Ты привёл массив указателей на строки и всё.
Странно получается.
Я привожу массив указателей на строки, но массивом строк его не называю. ПО определению просто он таковым не является.
Вы приводите массив символов, но называете его массивом строк.

Что-то поменялось в этом мире, а мене не предупредили...
0
1259 / 797 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
15.03.2010, 23:23 6
Матрица содержит десять строк типа char и вмещает 9 символов + '\0' в каждую строку.
0
ISergey
15.03.2010, 23:25
  #7

Не по теме:

Цитата Сообщение от Genius Ignat Посмотреть сообщение
C++
1
"ISergey",
Опа.. спалился :D

0
1259 / 797 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
15.03.2010, 23:33 8
И массив указателей который ты привел тоже верно.

Добавлено через 4 минуты
В твоем случае обратится к каждой строке можно так:
massive[номер указателя на какую то строку][номер индекс символа в строке на которую ссылается ук-ль].
Всё логично, но мой же способ тоже входит в понятие массива строк,
так как строка это массив символов типа char и WCHAR ,
А массив строк , получается матрица(массив массивов).

Добавлено через 2 минуты
А мне вообще по логике нравится так:
string str_m[20]; //библиотека вот так.
0
быдлокодер
1721 / 908 / 106
Регистрация: 04.06.2008
Сообщений: 5,639
15.03.2010, 23:37 9
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Матрица содержит десять строк типа char и вмещает 9 символов + '\0' в каждую строку.
Это я понял.
Вот ВЫ рассказали, что исз себя представляет матрица по сути? Да. Вот пусть она таковой и остаётся.
А массив указателей пусть остаётся массивом указателей. С известными оговорками и то и другое можно назвать массивом строк, но зачем?

МАло путаницы что ли?
0
3083 / 2404 / 255
Регистрация: 11.03.2009
Сообщений: 5,444
16.03.2010, 01:54 10
Любая строка это массив символов, и не важно указатели используются или статический массив.
0
49 / 49 / 13
Регистрация: 21.04.2009
Сообщений: 265
16.03.2010, 13:41 11
kravam, привет! У меня ДЕВ С++. Хотел спросить что такое отладчик и как им пользоваться? (Никогда им не пользовался) Хочу посмотреть эти самые адреса на строки!
0
быдлокодер
1721 / 908 / 106
Регистрация: 04.06.2008
Сообщений: 5,639
16.03.2010, 19:32 12
Перечёл ещё раз правила, вроде я ничего не нарушаю
http://www.wasm.ru/article.php?article=ollydbg01

...А отладчик, встроенный в DEV C++ мне никогда не нравился, да и не отладчик это вовсе, а просто возможность ПОШАГОВОГО исполнения, к тому же очень глюкавая возможность. Я отлично её реализую по-совему, в места остановки программы пихая printf ("lubaya stroka"); getchar ();
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2010, 19:32

Запросить название учебного заведения, специальность и номер группы. записав их в массив из 3 строк. Подсчитать длины каждой строк
Запросить у пользователя название учебного заведения, специальность и номер группы. записав их в...

Добавление неодинаковых строк в массив строк
Здравствуйте! Возникла такая проблема, не могу понять как реализовать добавление в массив строк...

Внесение строк в массив строк (не сложно)
Всем привет. Есть одна проблемка в решении задачи. Задачу я решил, но необходимо немного доделать....

Заполнить массив строк из файла. Массив заполняется, но выводится не корректно
Здравствуйте! Такая проблема. В файле имена записаны в столбик и разделены точкой с запятой. Массив...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru