Помогите реализовать

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Влад Молдавский
Сообщения: 3
Зарегистрирован: 11 фев 2010, 17:48

Суть моей проблемы состоит в непонимании реализации, не могу написать код, хотя теорию понимаю.
Текст вводится с клавиатуры, его необходимо разбить на слова и забить их в массив, каждый эелемент которого будет содержать отдельное слово.
Нужно ведь через gets забить текст какой мне необходим, а как дальше быть не понимаю :(
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

gets записывает строку в массив символов (одномерный). Вероятно Вам надо создать двумерный массив символов. Читать массивс формированный с помощью gets, искать в нем символы-разделители слов изаписывать слова в двумерный массив.
Предлогаю Вам разместить исходный код - чтобы было ясно что не получается и что были попытки решить самостоятельно - либо предложить вознаграждение за решение проблемы. Во втором случае могу решить я - ICQ 395546218
Влад Молдавский
Сообщения: 3
Зарегистрирован: 11 фев 2010, 17:48

В принципе и сама суть, что я не пойму как этот код сопоставить или как мне быть в общем.
Так и есть что необходим одномерный массив, больший вопрос у меня в том, что как мне поместить в массив слова. Текст я могу разбить с помощью функции

Код: Выделить всё

result = NULL;  
probel = " ";
result = strtok(string, probel);
Потом как я понял нужно создать цикл

Код: Выделить всё

while(result != NULL)
{
 char masstr[];                       // и буквально с этого омента я не знаю как быть..
}
Влад Молдавский
Сообщения: 3
Зарегистрирован: 11 фев 2010, 17:48

Вот если я сделал кучоек программы:
Не могу понять как сделать массив строк..

Код: Выделить всё

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
	clrscr();
	char string[80] = "Hello! I am Vlad.";
	char *s;
	//printf("Put your string \n");
	//gets(string);
	//clrscr();
	printf("This is your string \n");
	printf("%s \n\n", string);
	//const char thing = " ";
	s = strtok(string," ");
	printf("Your string after change\n");
	while(s != NULL)
	{
	printf("%s\n",s);
	s = strtok(NULL, " " );
	}
}
Объясните плз! :D
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

Код: Выделить всё

#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(){
	char	*string,
			**s;
	int i,j;
	const int N=10;	//10 слов
	s=new char*[N];	
	string = new char [80];
	strcpy(string,"Hello! I am Vlad.");
	for(i=0;i<N;i++)
		s[i]=new char[80]; //слова длинной 80 символов
	printf("This is your string \n");
	printf("%s \n\n", string);
	for(i=0,j=0;*string;string++)
		if(*string==' '){
			s[i][j]=0;	//конец слова
			j=0;
			i++;		//переходим на следущее слово
		}
		else
			s[i][j++]=*string;
	s[i++][j]=0;
	for(j=0;j<i;j++)
		printf("%s\n",s[j]);
	getche();
	return 0;
}
код ужасно плохой - но, возможно, поможет.
Ответить