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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2009, 06:56   #1
30MBU
Пользователь
 
Аватар для 30MBU
 
Регистрация: 15.09.2009
Сообщений: 19
По умолчанию Строки Си

Как можно задать строки без ограничений?

Код:
int main( int argc, char * argv[] ) {
	FILE * input_file = NULL;
	int i = 0;
	int words_num = 0;
	int input_str_length = 0;
	int cur_tok_length = 0;
	char input_str[MAX_CHAR] = {0}; //считываемая строка
	char words[MAX_CHAR][MAX_CHAR] = {0}; //массив слов из строки
	char * cur_tok = NULL;
	char * str = NULL;
	TREE * root = NULL;
	TREE * p = NULL;

	if( argc == 1 ) {
		printf( "Input string: " );
		gets( input_str );             //

		if( !input_str[FIRST] ) {
			printf( "Inputed string is empty!\n" );
			return -1;
		}
	} else {
		input_file = fopen( argv[INPUT_FILENAME], "r" );

		if( NULL == input_file ) {
			printf( "Cannot open file %s!\n", argv[INPUT_FILENAME] );
			return -2;
		}

		if( 1 != fscanf( input_file, "%s", &str ) ) {  //
			printf( "Cannot find any character!\n" );
			fclose( input_file );
			return -3;
		}

		strncpy( input_str, str, strlen(str));

		fclose( input_file );
	}

	
	cur_tok = strtok( input_str, " " );
	input_str_length = (int)strlen(input_str);

	while( cur_tok != NULL && i < input_str_length ) {
		if( NULL != cur_tok ) {
			cur_tok_length = (int)strlen( cur_tok );
			strncpy( words[words_num++], cur_tok, cur_tok_length );
		}
		cur_tok = strtok(NULL, " ");
	}

	root = create_element( words[FIRST] );

	if( root ) {
		for( i = SECOND; i < words_num; ++i ) {
			p = create_element( words[i] );
			insert( root, p );
		}

		printf( "Output:\n" );
		print_tree( root );
	}

	delete_tree( root );

	return 0;
}
30MBU вне форума Ответить с цитированием
Старый 29.12.2009, 20:59   #2
30MBU
Пользователь
 
Аватар для 30MBU
 
Регистрация: 15.09.2009
Сообщений: 19
По умолчанию

Нужна помощь! Перепробовала все способы, какие знаю. Прога ломается (
30MBU вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление элементов строки s2 из строки s1 Ueshua Общие вопросы C/C++ 4 20.12.2009 13:06
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45