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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2012, 13:18   #11
svkpro
Пользователь
 
Регистрация: 22.11.2012
Сообщений: 52
По умолчанию

если смысл задачи понятен может для ее решения использовать какой нить другой алгоритм или инструменты? дайте хотя бы идею а дальше я сам)
svkpro вне форума Ответить с цитированием
Старый 22.11.2012, 13:19   #12
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Да. Туплю. Совсем туплю.
Код:
char* beginning=&(st->shifr[0]);
char** pos = &beginning;
Ну, или
Код:
char** pos = reinterpret_cast<char**>(&(st->shifr));
Abstraction вне форума Ответить с цитированием
Старый 22.11.2012, 13:21   #13
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
если смысл задачи понятен может для ее решения использовать какой нить другой алгоритм или инструменты? дайте хотя бы идею а дальше я сам)
На самом деле, задача странная. По уму это не надо делать в цикле, по уму надо брать каждую часть строки, проверять её длину, записывать в своё (именованное) поле и всё это логично делать методом класса, а не внешним по отношению к структуре кодом.
Abstraction вне форума Ответить с цитированием
Старый 22.11.2012, 13:34   #14
svkpro
Пользователь
 
Регистрация: 22.11.2012
Сообщений: 52
По умолчанию

нельзя мне с классами возраст не тот))))))) я имею ввиду мы не проходили еще и преподаватель может не оценить по достоинству)
svkpro вне форума Ответить с цитированием
Старый 22.11.2012, 14:02   #15
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Так. Мне надо писать меньше бреда.
В общем, приведённое мной выше - лекарство от совершенно другой болезни, здесь категорически противопоказанное, а Вам надо отказаться от цикла и писать нечто вида
Код:
{
  p=strtok(str,";");
  strncpy(&(st->shifr[0]), p, 2);
  st->shifr[3]='\0';
  p=strtok(NULL, ";");
  strncpy(&(st->avtor[0]), p, 9);
  st->shifr[9]='\0';
  //...
}
В цикл это нормально не преобразуется.
Abstraction вне форума Ответить с цитированием
Старый 22.11.2012, 16:26   #16
svkpro
Пользователь
 
Регистрация: 22.11.2012
Сообщений: 52
По умолчанию

Abstraction, код то что надо! спасибо! вот только при просмотре контрольных значений в st->shifr="yyMuuuuuu" в остальных указателях все хорошо. почему такая реакция????? я же даю 0 и хочу чтобы она работала до знака ";" и она вроде так и делает но перед этим плюсует к первому указателю значения которые заносит в st->avtor???? это КАПЕЦЦЦЦЦЦ!
kniga s;
kniga* st=&s;
char str[]={"yyy;uuuuuu;iiiiiii;kkkkk;llllll; "};
char *p, *p1, *p2, *p3, *p4;
{
p=strtok(str,";");
strncpy(&(st->shifr[0]), p, 2);
st->shifr[3]='\0';
p1=strtok(NULL, ";");
strncpy(&(st->avtor[0]), p1, 9);
st->avtor[9]='\0';
p2=strtok(NULL, ";");
strncpy(&(st->nazv[0]), p2, 9);
st->nazv[9]='\0';
p3=strtok(NULL, ";");
strncpy(&(st->izdat[0]), p3, 9);
st->izdat[9]='\0';
p4=strtok(NULL, ";");
strncpy(&(st->god[0]), p4, 9);
st->god[9]='\0';
}
system("pause");
return 0;
}
svkpro вне форума Ответить с цитированием
Старый 22.11.2012, 16:28   #17
svkpro
Пользователь
 
Регистрация: 22.11.2012
Сообщений: 52
По умолчанию

спасибо уже нашел! УРРРРРАААААА!
svkpro вне форума Ответить с цитированием
Старый 22.11.2012, 17:00   #18
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Достаточно одного p. После вызова strncpy p можно использовать повторно, строка уже скопирована.
Abstraction вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Stack corrupted. Arrioh Помощь студентам 1 08.10.2012 16:11
STACK Lawliet32 C# (си шарп) 2 31.03.2011 14:04
Stack Overflow Xeonc Общие вопросы C/C++ 3 22.10.2010 08:07
Stack overfow alexdrew БД в Delphi 0 22.04.2010 17:51
Stack overflow GaLiof Помощь студентам 7 12.12.2009 12:56