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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2008, 13:14   #1
necky
Пользователь
 
Аватар для necky
 
Регистрация: 11.08.2007
Сообщений: 69
По умолчанию Произвольные строки в си.

Если кто работал с произвольными строками в си прошу идей господа. Может удастся с вашей помощью создать удачный пример работы с произвольной строкой, так как дядя гугл удовлетворил мой запрос(( ... поэтому и приходится обращатся к вам :|
Советовать можно лишь в деле, в котором сам собираешься участвовать.

Последний раз редактировалось necky; 03.12.2008 в 15:25.
necky вне форума Ответить с цитированием
Старый 03.12.2008, 15:40   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Что Вы подразумеваете под "произвольными строками"?
pu4koff вне форума Ответить с цитированием
Старый 03.12.2008, 15:50   #3
necky
Пользователь
 
Аватар для necky
 
Регистрация: 11.08.2007
Сообщений: 69
По умолчанию

Динамический массив символов длина которого извесна после нажати энтер.
Советовать можно лишь в деле, в котором сам собираешься участвовать.
necky вне форума Ответить с цитированием
Старый 03.12.2008, 18:43   #4
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

может так подойдет

Код:
#include<ctime>

char* StrGen( )

{
     time_t gen=time(NULL);
     srand(gen);

     int length=3+rand()%(15+3-1); // длина строки от 3 до 15 символов
     char *str=new char[length];   // память под эту строку

    for(int i=0;i<length;i++)
 
     {
	   str[i]=((char)rand()%('Z'-'A')+'A'); // строку заполняем символами от A до Z
     }

    str[length]='\0'; // заканчиваем строку нулем

    return str;
}
counter вне форума Ответить с цитированием
Старый 03.12.2008, 20:09   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

necky, а чем собственно проблема? класс string из STL смотрели?
pu4koff вне форума Ответить с цитированием
Старый 03.12.2008, 20:48   #6
necky
Пользователь
 
Аватар для necky
 
Регистрация: 11.08.2007
Сообщений: 69
По умолчанию

Смотрел, но ни чего дельного с этого не вышло ... и ещё .. counter - я юзаю борланд си и код который вы мне выслали не работает .. ((
Советовать можно лишь в деле, в котором сам собираешься участвовать.
necky вне форума Ответить с цитированием
Старый 03.12.2008, 21:28   #7
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

насколько я помню, в борланде надо писать после названия библиотеки .h (т.е. указаная в коде библиотека должна выглядеть так

Цитата:
#include<ctime.h>
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 03.12.2008, 21:43   #8
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

и не только. вместо srand и rand используется randomize и random
vvviperrr вне форума Ответить с цитированием
Старый 03.12.2008, 22:17   #9
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

И вместо оператора NEW, функция malloc();

И так
Код:
char *str=new char[length];
Работать не будет, ибо в С переменную можно объявлять только в начале блока
И борланд тут совершенно не причем. Просто человек пишет на С, а ему код на С++ дают...
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария

Последний раз редактировалось Blade; 03.12.2008 в 22:21.
Blade вне форума Ответить с цитированием
Старый 03.12.2008, 22:42   #10
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Цитата:
Сообщение от necky Посмотреть сообщение
Смотрел, но ни чего дельного с этого не вышло ... и ещё .. counter - я юзаю борланд си и код который вы мне выслали не работает .. ((
а че переделать слабо?
я не думаю что это так сложно

Код:
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<stdlib.h>


char* StrGen( )

{
	time_t gen=time(NULL);
	
    srand(gen);
	
	int length=3+rand()%(15+3-1);
	
    
	char *str=(char*)calloc(length,sizeof(char));

	for(int i=0;i<length;i++)
	  
	 {
	   str[i]=(rand()%('Z'-'A')+'A');
	 }

	str[length]='\0';

	 
	return str;
}


void main ()

{
	printf("%s",StrGen());

	getch();
}

Последний раз редактировалось counter; 03.12.2008 в 23:01.
counter вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки на Си Карол Помощь студентам 6 14.02.2010 12:02
c++ строки Abbatik Помощь студентам 1 14.05.2008 20:09
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45