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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2013, 00:44   #1
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
Хорошо Разбор строки на отдельные слова и помещение слов в массив ( на C )

Код:
char str1[100]="";
	char *str2[100];
	int u=0;
	int uu=0;

for(i=0;i<strlen(str);i++)
	{
		if(str[i]>='А' && str[i]<='я') 
		{
			str1[u]=str[i];
			u++;
		}
		else
		{
			if(str[i+1]>='А' && str[i+1]<='я')
			{
			strcpy(str2[uu], str1);
			uu++;
			}
		}
	}
Почему при strcpy программа крашится? при входных данных к примеру "приве т"
Praud вне форума Ответить с цитированием
Старый 13.12.2013, 00:53   #2
proef
Форумчанин
 
Регистрация: 08.06.2013
Сообщений: 133
По умолчанию

нельзя так делать ) Если два слова нужно написать то через "_"
у меня тоже крашится
proef вне форума Ответить с цитированием
Старый 13.12.2013, 01:25   #3
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

я уже понял, что нельзя) Мне нужно чтобы слово сохранялось в двумерный массив. Для дальнейшей работы со словами.
Praud вне форума Ответить с цитированием
Старый 13.12.2013, 01:30   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

А как объявлена просто str ?
type_Oleg вне форума Ответить с цитированием
Старый 13.12.2013, 01:48   #5
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

Код:
char str[200]; //Входная строка
Praud вне форума Ответить с цитированием
Старый 13.12.2013, 02:03   #6
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Может, вместо
Код:
char *str2[100];
проще
Код:
char str2[100][100];
Я просто не знаю, как в первом случае память выделяется.
type_Oleg вне форума Ответить с цитированием
Старый 13.12.2013, 02:17   #7
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

в таком случае не компилируется. Подсвечивается первый аргумент в strcat(str2[uu][uu], str1);
Praud вне форума Ответить с цитированием
Старый 13.12.2013, 02:21   #8
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

А зачем два индекса - str2[uu][uu] ? Это получается символ, а не строка.
type_Oleg вне форума Ответить с цитированием
Старый 13.12.2013, 03:01   #9
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

сглупил, все работает)
Praud вне форума Ответить с цитированием
Старый 13.12.2013, 03:08   #10
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

эмм такой вопрос
for(i=0;i<strlen(str);i++)
if(str[i+1]>='А' && str[i+1]<='я' || str[i+1]=='\0') такое условие есть

при входной строке "привет привет б" - условие выполняется
при "привет привет" не выполняется, хотя есть признак конца строки. Пробовал вместо i+1 ставить i - тоже не помогает
Praud вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выделение из строки s, m слов, начиная от слова номер n. Lers Общие вопросы C/C++ 2 01.05.2013 22:33
в заданной строке символов (отдельные слова, разделенные пробелом) найти слова с совпадающими первой и последней буквами (С++) T_h_i_s Помощь студентам 0 19.11.2012 18:37
Чтение строки данных и разбор на отдельные части }|{opa KopHeB Помощь студентам 2 27.01.2011 23:28
найти среднюю длину слов в массиве строк и заменить нею слова последней строки (размерность массива 12) INZA Паскаль, Turbo Pascal, PascalABC.NET 0 20.12.2010 19:45
Разбор целого числа на отдельные символы Crystallon Общие вопросы Delphi 4 12.09.2010 20:20