powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите задать массив слов, плиз...
2 сообщений из 2, страница 1 из 1
Помогите задать массив слов, плиз...
    #32596750
C Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа! Помогите задать массив слов...
Функцией (своей) get_count_word() определяю кол-во слов в массиве
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
int get_count_word(char s[ 255 ]){
	int i, result= 0 ;
	for(i= 0 ;i<(abs(strlen(s)));i++){
		if(is_symbol(s[i])!= 1 ){
			result++;
		}
	}
	result++;
	return result;
}
длину слова беру 128
надо создать str_out не просто определением типа
Код: plaintext
char str_out[ 20 ][ 128 ];

где 20 - число слов в массиве строк, а динамически в зависимости от полученного значения...

Код: plaintext
1.
2.
3.
4.
5.
6.
int main()
{
	char **str_out;
	//char str_out[ 20 ][ 128 ];
	i= get_count_word(str_in);
	str_out =  new char [i][ 128 ]; 

среда VC++6, на сях начал писать совсем не давно
...
Рейтинг: 0 / 0
Помогите задать массив слов, плиз...
    #32596974
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для разбора лучше пользоваться strtok()

для динамического расширения
я бы, если не критично, использовал stl

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#icnlude <vector>
using namespace std;

vector<char*> vText;

//add
{
char *psz = new char[iSize];
strcpy(psz,szText);
vText.push_back(psz);
}
или можно организовать свой одно-, двухсвязный список.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
class TextItem
{
char *psz;
TextItem* next;
TextItem* prev;
}


TextItem *pHead = NULL;

// add
TextItem *pTail = pHead;
if(pTail)
{
while(pTail.next)
{
 pTail = pTail.next;
}
pTail.next = new TextItem;
pTail = pTail.next;
pTail.psz = new char[size];
strcpy(pTail.psz, szText);
pTail.next = NULL;
}
else
{
TextItem *pHead = new TextItem
pHead.psz = new char[size];
strcpy(pHead.psz, szText);
pHead.next = NULL;
}
или делать перевыделение памяти.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
int iSize =  20 ;// size
int iCur = - 1 ;// current index
char** ppsz;

ppsz = new char*[iSize];
iCur++;

// add
ppsz[iCur] = new char[size];
iCur++;
if(iCur==iSize) // need more
{
ppszn = new char[iSize+ 20 ];
memcpy(ppszn,ppsz,iSize*sizeof(long));
iSzie += 20 ;
}
удаление сами :)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите задать массив слов, плиз...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]