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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2014, 13:01   #1
yura1234
Пользователь
 
Регистрация: 13.03.2014
Сообщений: 23
По умолчанию Работа со строками в языке С.

Есть программа, помогите модифицировать для данного задания, данная программа из текста выводит слова печатая их с новой строки.
Цитата:
Дан многострочный текст (char text[20][81]), состоящий из слов и разделителей. Слово – это непрерывная последовательность букв и/или цифр. Разделителями слов могут быть следующие символы: ! '' (двойные кавычки) ; : ? - . , [пробел]. Определите, сколько процентов составляет длина каждого слова от длины всего текста. Исходный текст не модифицировать. Последовательности символов, не являющиеся словами (т.е. содержащие недопустимые символы), игнорировать.
Формат входных данных. [M] [1-я строка] [2-я строка] и т.д. M – кол-во строк в тексте, целое число в диапазоне [1, 20].
Формат выходных данных. [вклад 1-го слова в процентах] [пробел] [вклад 2-го слова в процентах] и т.д. Вклад i-го слова – вещественное число в диапазоне [0, 100] с точностью до 2-х знаков; если слов не обнаружено, то напечатайте сообщение «no solution»
Код:
int _tmain(int argc, _TCHAR* argv[])
{
	char text[21][81];			//текст
	int linesCount;			//Количество строк в тексте
	char razd[] = " !?:;.,\n";       //разделители
	
	//ввод кол-ва строк текста
	printf("Input number of strings ");
	scanf("%d",&linesCount);

	//Проверка ввода
	if((linesCount<1) || (linesCount>20))
	{
		printf("Number of lines is out of range");
		_getch();
		return 0;
	}

	//Ввод текста
	for(int i=0; i<=linesCount; i++)
	{
		gets(text[i]);
	}

	//Вывод слов
	for (int i = 0; i <=linesCount; i++)
	{
		//Вывод слов в строке
		char* pWord;
		pWord = strtok(text[i], razd);
		while (pWord!=NULL)

		{
			
			puts(pWord);
			pWord = strtok(NULL, razd);
		}
	}


	_getch();
	return 0;
}
yura1234 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с символами и строками в языке Object Pascal Rudichekkk Помощь студентам 1 04.12.2013 23:49
Работа со строками Ivanov9 C# (си шарп) 1 29.07.2013 01:27
Разработать блок-схему и программу на языке Си функции операции со строками МариМар Помощь студентам 0 01.01.2011 11:31
Работа с матрицами (норма матрицы, работа со строками) Neitrosha Помощь студентам 1 26.11.2010 20:19
Работа со строками в языке С++ Lexxy Помощь студентам 2 24.11.2010 16:58