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

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

Войти
Регистрация
Восстановить пароль
 
Sasuke
1 / 1 / 0
Регистрация: 09.10.2009
Сообщений: 89
#1

Массив строк - C++

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

Извините меня, за такой глупый вопрос, но я почему то не могу понять это словосочитание. Правильно ли я понимаю - это двумерный массив?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2010, 22:10     Массив строк
Посмотрите здесь:

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

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

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

Задано массив строк произвольной длины. Отформатировать данный массив по ширине поля. - C++
Задано массив строк произвольной длины. Отформатировать данный массив по ширине поля.

Как перевести массив строк в массив int - C++
for (int i=0; i<str.size(); i++) { str=static_cast<int>(str); } есть vector <string> str; Оно не...

Преобразовать массив Int в массив строк - C++
Помогите пожалуйста с решением. Нужно в каждый элемент массива string положитm элемент массива int. Т.е из int i={1,12,100} получить...

массив строк - C++
Создать массив строк и без перестановки строк вывести их в отсортированном порядке. Кто сможет объяснить как делать или показать...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1235 / 773 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
15.03.2010, 22:23     Массив строк #2
Правильно.
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,438
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 Посмотреть сообщение
Правильно.
Нет, неправильно, не сбивайте людей с толку.
Genius Ignat
1235 / 773 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
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 минут
Одно есть преимущество если использовать массив указателей:
сортировка не требует перезаписи между строками, просто указатели пере наводятся.
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,438
15.03.2010, 23:21     Массив строк #5
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Ты привёл массив указателей на строки и всё.
Странно получается.
Я привожу массив указателей на строки, но массивом строк его не называю. ПО определению просто он таковым не является.
Вы приводите массив символов, но называете его массивом строк.

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

Не по теме:

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

Genius Ignat
1235 / 773 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
15.03.2010, 23:33     Массив строк #8
И массив указателей который ты привел тоже верно.

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

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

МАло путаницы что ли?
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
16.03.2010, 01:54     Массив строк #10
Любая строка это массив символов, и не важно указатели используются или статический массив.
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
16.03.2010, 13:41     Массив строк #11
kravam, привет! У меня ДЕВ С++. Хотел спросить что такое отладчик и как им пользоваться? (Никогда им не пользовался) Хочу посмотреть эти самые адреса на строки!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2010, 19:32     Массив строк
Еще ссылки по теме:

Массив строк - C++
Добрый вечер! Решая задачу из главы 7, книги Лафоре, столкнулся с неправильной работой программы, второй и последующие параметры, при вводе...

массив строк - C++
Создать массив строк, содержащих имена 20 человек. Длина фамилии не превышает 30 элементов. Вывести имена в алфавитном порядке. ...

Массив строк - C++
Составить программу, кодирующую и декодирующую текст, содержащийся в литерном массиве строк, с помощью алгоритма перевертывания слов,...

Массив строк... - C++
Здравствуйте, помогите пожалуйста, дан файл .txt, в нем неизвестное кол-во символьных строк, надо вывести все строки на экран поочередно,...

Массив строк - C++
Перебираю структуру и когда выполняется определенное условие, мне необходимо элемент структуры типа char (то есть это строка) присвоить...


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

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,438
16.03.2010, 19:32     Массив строк #12
Перечёл ещё раз правила, вроде я ничего не нарушаю
http://www.wasm.ru/article.php?article=ollydbg01

...А отладчик, встроенный в DEV C++ мне никогда не нравился, да и не отладчик это вовсе, а просто возможность ПОШАГОВОГО исполнения, к тому же очень глюкавая возможность. Я отлично её реализую по-совему, в места остановки программы пихая printf ("lubaya stroka"); getchar ();
Yandex
Объявления
16.03.2010, 19:32     Массив строк
Ответ Создать тему
Опции темы

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