Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2015, 08:57   #1
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию Передача строки в строке

Приветствую. Возникла следующая задача:
1) Вводится строковая команда конфигурации, которая может содержать пробелы.
2) Эта строковая команда вливается в другую строку, также содержащую несколько параметров
3) Нужно выдернуть строку (1) из строки (2)
4) Таких строк может быть несколько

Пока что единственным вариантом вижу замену разделителей в строке (2) с пробела на знак '|' (либо другой, гарантированно не встречающийся в командах), и последующий дербан строки scanf`ом в духе
Код:
scanf("%d|%d|%s|%d|%d", &int_1, &int_2, string, &int3, &int4);
Возможно, есть способ проще?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 10.03.2015, 13:38   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

для передачи "строкового параметра" с пробелами в команд. строке обычно кавычки юзают.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 10.03.2015, 14:39   #3
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Ну применительно к (ba)sh и иже с ними вопрос не возник бы. А тут передача указанной строки из функции в функцию на Си. Я не думаю, что корректно отработает разборку тем же scanf`ом для строки вида
Код:
char mystring[] = "arg1 arg2 \"string_param_1 string_param_2\" arg3 arg4 \"string_param_3 string_param_4\""
, либо я просто не умею такие парсеры готовить.

Также нарисовался вариант упихивания всех параметров в одну длинную строку с добавлением вспомогательных параметров (длин строк), после чего развлечения с указателями, со строкой в духе
Код:
char mystring[] = "arg1 arg2 string_1_len string_param_1 string_param_2 arg3 arg4 string_2_len string_param_3 string_param_4"
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт из DLL - передача строки Selestis C# (си шарп) 1 13.08.2012 19:08
Найти все вхождения строки Т в строке S (СИ) L01 Помощь студентам 3 25.06.2012 20:24
Обрезать пробелы в строке с начала строки и с конца строки (C++) tema65 Помощь студентам 6 28.12.2011 13:24
передача строки в класс shelest Общие вопросы C/C++ 9 10.08.2011 16:31
Передача параметров в командной строке RUBEY Общие вопросы Delphi 1 12.01.2009 18:57