![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.10.2012
Сообщений: 37
|
![]()
И снова здравствуйте.
Мне необходимо передать часть массива в функцию. Для примера предположим что есть массив символов, который содержит традиционное "Hello, world!", и мне необходимо передать функции только слово "Hello". Таким образом из массива длиной 11 символов(\0 не в счет), мне необходимо передать только 5 символов. Как это реализовать? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
![]()
может переписать эти 5 символов в другой массив...
Код:
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
![]()
Только исходный массив символов имеет длину 14 (вместе с '\0')
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 07.10.2012
Сообщений: 37
|
![]()
Если бы это было так легко, то я не создавал бы это тему. Из массива вырезаются слова разной длины, то есть сейчас это 5 символов, а потом может быть 11 или 2, поэтому этот метод не подходит. Был правда выход -> постоянное создание нового массива внутри функции, размер которого был бы равен размеру слова. Но этот метод не соответствует ANSI стандарту, и поэтому некоторые компиляторы просто откажутся компилировать программу.
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
![]()
Так просто ищите в Вашем массиве слово, записывайте в другой массив и передавайте (применяйте алгоритм нахождения слова).
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 07.10.2012
Сообщений: 37
|
![]()
Нет тут хитрость в том, что массив должен иметь такую же длину что и само слово, то есть если слово состоит из 5 символов, то и массив должен состоять из 5 ячеек(\0 не нужно т.к. слово должно полностью заполнять размер), а т.к. для этого нужен динамически меняющий размер массив(который возможно вообще не существует как понятие), то единственный выход это передать часть массива в функцию. Жаль что нельзя сделать как в Python, передав массив в виде name[0:5](передать все символы от 0 ячейки до 5й).
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
![]()
Динамические массивы есть:
Код:
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 07.10.2012
Сообщений: 37
|
![]()
Благодарю за полезную информацию. Хоть это и не совсем то, но возможно это поможет. Тогда спрошу кое что по проще:
Предположим есть массив name на 256 ячеек, который заполнен следующим образом {'f','i','l','e','.','t','x','t','\ 0', ... "мусор" ...} И необходимо передать этот массив в fopen, отбросив '\0' и "мусор". Если передать fopen(name,"rt"), то он примет '\0' за часть имени и будет искать файл с именем "file.txt" и кодом '\0', и не найдет его т.к. файл "file.txt" не содержит в имени '\0'. Скажу сразу, это не какое то задание, а моя личная программа(а точнее игра), дабы вы не думали что я не хочу делать задание а прошу других. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 224
|
![]()
std::string не подойдёт для этой программы? По-моему, у него есть много методов, которые облегчат такие задачи.
Люди бывают 10 типов: те, кто понимают двоичную систему счисления, и те, кто не понимают...
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 07.10.2012
Сообщений: 37
|
![]()
Ох, до этого я еще не дочитал в учебнике
![]() Подскажи пожалуйста как это применить? С теми условиями о которых я сказал выше. Буду благодарен ![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача функции в качестве аргумента | maks12 | Помощь студентам | 5 | 10.05.2012 08:13 |
Имя функции в качестве аргумента | Artem_Kokos | Помощь студентам | 1 | 25.04.2011 00:20 |
Как массив передать в качестве аргумента функции | Mixim | C# (си шарп) | 7 | 10.03.2011 09:53 |
Передача object в качестве аргумента | moknomo | Microsoft Office Excel | 3 | 14.12.2010 09:35 |
Функции. Передача массива в качестве параметра функции. | Wia | Помощь студентам | 2 | 17.03.2009 14:57 |