ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

19.09.2008, 00:27
|
|
Участник форума
Регистрация: 20.11.2006
Сообщений: 172
Провел на форуме: 539954
Репутация:
106
|
|
Постараюсь объяснить суть. Нужно написать функцию, которая принимала бы в качестве аргумента массив из нескольких слов (через пробел) которые бы находились в argv[0], argv[1] и тд. Что-то типа как в функции main(int argc, char *argv[]). Здесь запуская программу мы можем указать параметры, например:
Тогда argv[1]=hello argv[2]=world. Нужна примерно аналогичная функция, только чтобы принимала массив. Например:
Код:
...
int XFunction(char *x[]) {
printf("%s", x[1]);
printf("%s", x[2]);
return 0; }
int main() {
char buff[512];
gets(buff);
XFunction(buff);
return 0; }
Здесь запускаем программу, вводим, к примеру hello world, и XFunction нам выводит в качестве x[1] - hello, в качестве x[2] - world. Это как нибудь реально осуществить? Сколько не пытался, все время Segmentation Fault
Заранее спасибо!
|
|
|

19.09.2008, 01:47
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме: 750247
Репутация:
92
|
|
Дорогой ++Norton++, очень хочу узнать твое мнение. Каким макаром компилятор так ловко преобразовал из char* в char**. Вот просто интересно...
Добавлено позже...
А вот еще очень интересный момент. x[2] бескомпромисно вылезло за размеры массива и так упорно пытается что-то вырвать с памяти.
PS: просто хорошее настроение. 
Последний раз редактировалось 4p3; 19.09.2008 в 01:52..
|
|
|

19.09.2008, 07:34
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
идёшь циклом по содержанию файла,если пробел к примеру ставишь флаг и считаешь количество букв в слове(до след. пробела).Ну и если оно равно тому которое тебе нужно - сохраняешь.
|
|
|

19.09.2008, 08:03
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме: 750247
Репутация:
92
|
|
UnPazz,
берем fstream. Определяем разделитель текстового файла. Объявляем один объект типа string и используем getline. Первый аргумент - объект fstream, второй объект string, третий - char разделитель. Организуем цикл. Проверочным условием будет метод eof() , угадайте какого объекта. Для определения длины используется функция-член класса string size().
Успехов.
|
|
|

19.09.2008, 09:55
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
каким образом можно найти слова определенной длины????
не имеет значения pascal/c/c++
пожалуйста.
Регулярными выражениями: (\b[\w]{длина}\b)
|
|
|

19.09.2008, 11:06
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме: 4037638
Репутация:
1821
|
|
Сообщение от UnPazz
есть текстовый файл.
в нем, например, записан текст. текст состоит из слов разной длины.
каким образом можно найти слова определенной длины????
не имеет значения pascal/c/c++
пожалуйста.
---------
Сообщение от nerezus
Регулярными выражениями: (\b[\w]{длина}\b)
---------
UnPazz, Если нужна инфа по регуляркам то вот:
|
|
|

19.09.2008, 11:39
|
|
Участник форума
Регистрация: 07.07.2008
Сообщений: 161
Провел на форуме: 1027635
Репутация:
234
|
|
UnPazz
Вот на С++ http://paste.pocoo.org/show/85661/
|
|
|

19.09.2008, 14:52
|
|
Участник форума
Регистрация: 20.11.2006
Сообщений: 172
Провел на форуме: 539954
Репутация:
106
|
|
4p3
Да нет, компилятор ничего не преобразовывал  . То что я привел, я согласен бред полнейший. Это я привел просто для примера, т.к. правильно сделать не знаю пока как. Вот и обращаюсь за помощью
|
|
|

19.09.2008, 20:32
|
|
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме: 4226446
Репутация:
1564
|
|
Сообщение от ChaaK
PHP код:
int rand;
srand((int)time(NULL));
rand = rand()%10;
Переменную переименуй из rand в rand_ и скомпилится.
Последний раз редактировалось 0x0c0de; 19.09.2008 в 20:35..
|
|
|

20.09.2008, 01:01
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме: 750247
Репутация:
92
|
|
Сообщение от ++Norton++
4p3
Да нет, компилятор ничего не преобразовывал  . То что я привел, я согласен бред полнейший. Это я привел просто для примера, т.к. правильно сделать не знаю пока как. Вот и обращаюсь за помощью
вот выдалось время свободное
Код:
//---------------------------------------------------------------------------
#include <iostream>
#include <cstdlib>
#pragma hdrstop
using namespace std;
//---------------------------------------------------------------------------
void PrintVarArg(char** args, int nArgsCount)
{
for (int i = 0;i < nArgsCount;++i)
cout << args[i];
}
#pragma argsused
int main(int argc, char* argv[])
{
char *szArgs[] = {"dalek", "kaled"};
PrintVarArg(szArgs, 2);
system("pause");
return 0;
}
//---------------------------------------------------------------------------
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|