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

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

Войти
Регистрация
Восстановить пароль
 
Vtulhu
371 / 377 / 96
Регистрация: 12.08.2011
Сообщений: 1,610
#1

Массив строк как массив указателей на массивы чаров - C++

13.12.2012, 15:45. Просмотров 746. Ответов 7
Метки нет (Все метки)

Я всё правильно сделал?

C++
1
2
3
4
5
6
7
8
9
10
11
12
char* Files[4];
Files[0] = "AHEAD";
Files[1] = "LEFT";
Files[2] = "RIGHT";
Files[3] = NULL;
 
int searchFile() {
int i = 0;
while (Files[i] != NULL) {
if (FileExists(Files[i]) return i;
return -1;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 15:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив строк как массив указателей на массивы чаров (C++):

Массив указателей на массив строк и сортировка массива указателей - C++
Добрый день. Поступил вопрос. Есть задача. У нас встроенный массив char mass;.Мы вводим строки до тех пор, пока не будет заполнен массив...

Нужно создать статический массив строк как статический массив указателей на строки. Условние ниже --> - C++
Слова английского текста рассортировать по возрастанию количества заданной буквы в слове. Слова с одинаковым количеством такой буквы...

создать статический массив строк как статический массив указателей на строки, задание ниже --> - C++
Слова английского текста, начинающиеся с гласных букв, рассортировать в алфавитном порядке по первой согласной букве слова. Остальные слова...

по поводу указателей. Как правильно задавать массив указателей и его удалять? - C++
Т.е., например создаю указатель: TPoint *p_Point=NULL; а если массив? TPoint *p_MassPoint; //=?; как массив обнулить не ясно ...

Очистить массив чаров - C++
#include "stdafx.h" #include <algorithm> #include <iostream> #include <locale> #include <windows.h> #include <sstream> using...

Ввод строк и запись их в массив указателей - C++
Мне надо считать определённое количество слов, это количество я должен ввести, потом каждое их эти слов записать в массив, как я понял это...

7
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
13.12.2012, 15:57 #2
Копирование строк по другому нужно делать:
C++
1
strcpy(Files[0], "AHEAD");
0
Байт
Эксперт C
16144 / 10422 / 1552
Регистрация: 24.12.2010
Сообщений: 19,730
13.12.2012, 16:21 #3
return -1 вынеси из тела цикла. Если я правильно понял твои намерения
C++
1
2
3
4
while (Files[i] != NULL) {
if (FileExists(Files[i]) return i;
}
return -1;
1
Vtulhu
371 / 377 / 96
Регистрация: 12.08.2011
Сообщений: 1,610
13.12.2012, 17:46  [ТС] #4
Цитата Сообщение от Байт Посмотреть сообщение
return -1 вынеси из тела цикла. Если я правильно понял твои намерения
Да, действительно. Но это опечатка, по сути. Главным образом я сомневался насчёт указателей, чаров и т.п. Это для меня тёмный лес. А в каких местах можно понаставить слово const? Названия файлов меняться никогда не будут.
0
Байт
Эксперт C
16144 / 10422 / 1552
Регистрация: 24.12.2010
Сообщений: 19,730
13.12.2012, 20:46 #5
Цитата Сообщение от Vtulhu Посмотреть сообщение
Главным образом я сомневался насчёт указателей, чаров и т.п.
Как-будто все нормально. Можно и так написать
C
1
 static *Files[] = { "AHEAD", "LEFT", "RIGTH", NULL };
static для того чтоб Files не было глобальной переменной. Она будет видна только в этом исходнике. В другом ты можешь опять ввести переменную Files, которая не будет совершенно связана с этой
0
Vtulhu
371 / 377 / 96
Регистрация: 12.08.2011
Сообщений: 1,610
13.12.2012, 20:52  [ТС] #6
Цитата Сообщение от Байт Посмотреть сообщение
static для того чтоб Files не было глобальной переменной. Она будет видна только в этом исходнике. В другом ты можешь опять ввести переменную Files, которая не будет совершенно связана с этой
Вы слишком хорошего мнения о моих способностях C++-программиста. У меня мини-прожка из 250 строк в одном файле.
0
Байт
Эксперт C
16144 / 10422 / 1552
Регистрация: 24.12.2010
Сообщений: 19,730
13.12.2012, 21:22 #7
Цитата Сообщение от Vtulhu Посмотреть сообщение
У меня мини-прожка из 250 строк в одном файле.
Но ты ведь судя по разделу, только начинаешь?
Цитата Сообщение от Vtulhu Посмотреть сообщение
Названия файлов меняться никогда не будут.
Значит, все-таки думаешь о будущем? Как только твоя прожка перевалит за 1000 строк, мой совет тебе может пригодиться... А так все ничего. Для начинающего очень даже. Ну, и пока все так неустойчиво в голове, надо иногда и к первоисточникам возвращаться...
0
Vtulhu
371 / 377 / 96
Регистрация: 12.08.2011
Сообщений: 1,610
14.12.2012, 12:40  [ТС] #8
Цитата Сообщение от Байт Посмотреть сообщение
Но ты ведь судя по разделу, только начинаешь?
Уже кончил. Мне С++ нужен для одной малюсенькой программульки, которая уже практически написана. Остались всякие мелочи типа той, что обсуждается в данной теме. А вообще я программирую на другом языке (PureBasic).

Значит, все-таки думаешь о будущем?
Иногда даже слишком. Из-за этого даже очень простая программа делается долго. Здесь "совершенный код" не нужен.

Как только твоя прожка перевалит за 1000 строк, мой совет тебе может пригодиться...
Вряд ли. Да и эти 250 строк набрались только потому что у меня очень размашистый почерк. Я люблю расписывать на несколько строк, чтобы всё понятно было и нельзя было запутаться. Всякие там ++a = ++b[c++] не для меня.

Я правильно понимаю, что вот так делать нельзя, потому что после отработки этой процедурки сборщик мусора может в любой момент освободить эту область памяти и указатели начнут указывать на непонятно что? А как надо?
C++
1
2
3
4
5
6
void initFiles() {
Files[0] = "AHEAD";
Files[1] = "LEFT";
Files[2] = "RIGHT";
Files[3] = NULL;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2012, 12:40
Привет! Вот еще темы с ответами:

Сформировать массив указателей на матрицу строк - C++
может кто нибудь обьяснит что требуеться в задании сделать. сформировать массив указателейна масиив строк и заполнить циклически буквами...

Вектор строк и массив указателей на тип char - C++
Помогите, пожалуйста, с одной задачей. Сижу голову ломаю. Никак не могу понять почему эта ошибка выскакивает. Напишите программу,...

Считать символы из вектора в массив чаров - C++
Задача из вектора string перекидать значения в массив чаров, каждый элемент вектора это должен быть один из массивов... Я не могу сделать...

Запись вектора строк в массив указателей на тип char - C++
Решаю задачу 4.34 из книги Липпмана С. Язык программирования С++. Вводный курс. 4-е изд. Задание: 1) Напишите программу, читающую...


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

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

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