2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2, 3, 4, 5  След.
 
 
Сообщение09.12.2007, 21:18 
нет.
указатель содержит лишь адрес того на что он указывает.
в нашем случае это char.
то есть адрес первого символа приведенной строки.

 
 
 
 
Сообщение09.12.2007, 21:22 
Понятно. А что дальше?

 
 
 
 
Сообщение09.12.2007, 21:29 
теперь пойдем дальше.
мы задали исходные данные
char *arr="abcd1 jhg ng1111,";

теперь я предлагаю реализовать такую операцию
будем двигаться в цикле по нашей строке пока не попадется пробел
или пока не достигли конца строки

Добавлено спустя 1 минуту 20 секунд:

while(*arr!=' '&&*arr!=',')
{
arr++;
}

Добавлено спустя 52 секунды:

Вам понятно что я написал?

 
 
 
 
Сообщение09.12.2007, 21:46 
Понятно.
То есть мы идем по циклу до первого пробела или запятой.

 
 
 
 
Сообщение09.12.2007, 21:51 
теперь добавим сюда
int flag ;
flag = 1;
while(*arr!=' '&&*arr!=',')
{
if(*arr<= '9'&& *arr>='0')
{
flag = 0;
}
arr++;
}

что здесь имеется ввиду?

 
 
 
 
Сообщение09.12.2007, 21:55 
Если в идентификаторе встретится цифра, то мы его запоминаем

 
 
 
 
Сообщение09.12.2007, 22:06 
молодец!
только не запоминаем а скорее отмечаем с помощью флага

теперь нужно добавить еще один указатель.
посмотрите внимательно

Код:
  char *arr="abcd1 jhg ng1111,";
  char *p=arr;
  int flag = 0;

  while(*arr!=',')
  {
    flag = 1;
    while(*arr!=' '&&*arr!=',')
    {
      if(*arr<= '9'&& *arr>='0')
      {
        flag = 0;
      }
      arr++;
    }
    if(flag)
    {
      while(p!=arr)
      {
        printf("%c",*p);
        p++;
      }
      printf("\n");
    }

    p = arr;

   }

здесь не хватает для завершенности всего несколько строчек

попробуйте описать словами тот алгоритм что здесь реализован
вставил [code] для примера // нг

 
 
 
 
Сообщение10.12.2007, 00:51 
Аватара пользователя
vadim55
У нас есть тег [cоdе] для текстов программ. Рекомендую!

 
 
 
 
Сообщение10.12.2007, 08:17 
нг писал(а):
vadim55
У нас есть тег [cоdе] для текстов программ. Рекомендую!


не знал.
учту на будущее.

 
 
 
 
Сообщение10.12.2007, 14:55 
vadim55 писал(а):
теперь нужно добавить еще один указатель.
посмотрите внимательно

Код:
char *arr="abcd1 jhg ng1111,";
char *p=arr;
int flag = 0;

while(*arr!=',')
{
flag = 1;
while(*arr!=' '&&*arr!=',')
{
if(*arr<= '9'&& *arr>='0')
{
flag = 0;
}
arr++;
}
if(flag)
{
while(p!=arr)
{
printf("%c",*p);
p++;
}
printf("\n");
}

p = arr;

}


здесь не хватает для завершенности всего несколько строчек

попробуйте описать словами тот алгоритм что здесь реализован


Я что-то не понимаю что здесь написано :( , объясните поподробнее зачем нужен второй указатель и что нужно написать до завершения?

 
 
 
 
Сообщение10.12.2007, 15:40 
Вы можете на бумаге проследить что происходит в программе?

мне бы хотелось что бы вы поняли что здесь происходит...

 
 
 
 
Сообщение10.12.2007, 19:02 
vadim55 писал(а):
if(flag)
{
while(p!=arr)

Я никак не могу понять, что происходит в этих двух строчках :(

 
 
 
 
Сообщение10.12.2007, 20:12 
Настёна писал(а):
vadim55 писал(а):
if(flag)
{
while(p!=arr)

Я никак не могу понять, что происходит в этих двух строчках :(


говориться о том что продолжать цикл до тех пор пока оба указателя(p и arr)
не будут указывать на одно и тоже место в нашей строке.
попробуйте нарисовать все на бумаге...

говорите что еще непонятно...

Добавлено спустя 5 минут 17 секунд:

очень важно хорошо понять эту задачу т.к Вы сможете после этого решать целую группу подобных задач. :!:

 
 
 
 
Сообщение10.12.2007, 21:29 
Вроде все понятно. Только объясните для чего нам надо чтобы эти указатели встретились, для того чтобы вывести нужный нам идентификатор?

 
 
 
 
Сообщение10.12.2007, 22:17 
смотрите
вначале они оба указывают на одно и тоже место - первый символ нашей строки первая буква 'a'


Код:
char *arr="abcd1 jhg ng1111,";
char *p=arr;


согласны?

 
 
 [ Сообщений: 61 ]  На страницу Пред.  1, 2, 3, 4, 5  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group