Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++]Поиск символа в массиве...


Автор: a11en 12.1.2007, 16:56
Короче завтра экзамен, а сегодня на консультации сказали примерные задания, которые ввели меня в ступор.
задания такие(в точности не помню)
1. Сравнить 2 строки(ну это полазил по форуму нашел, что мог) хотя не понятно что именно надо сравнить!

2. Найти символ в массиве, как это осушествляется, вообще не представляю ни разу такого не делали лекции естествено тоже 
не было, то ли сколько раз встречается в этой строке определеный символ.
если можно то на примере...
например у меня есть строка 1 2 4 3 5 6 7 12 17 65
мне надо найти встречается ли цифра 1.
или сколько раз встречается цифра один.

извеняюсь за не ясность изложеного и сомневаюсь чтокто нить поможет, но если сможете буду очень благодарен.

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

Автор: Dray 12.1.2007, 17:08
А ты сделай пользовательское меню, где будет задаваться вопрос "Вы хотите определить встречается ли символ в строке, или Вы хотите узнать сколько раз он встречается?"
И в зависимости от ответа делай то или иное  smile 


Цитата(a11en @  12.1.2007,  16:56 Найти цитируемый пост)
где нить есть база в которой описаны стандартные библиотеки и функции?

А http://worldcpp.vingrad.ru/ смотрел?

Автор: a11en 12.1.2007, 17:16
Нигде не смотрел...

а на счет пользовательского меню, мне это не поможет я не знаю как это реализуется, я совсем новичок в Си учил только то что в универе дают, а на экзамен вынесли что то не понятное!

Автор: sergejzr 12.1.2007, 17:20
Цитата(a11en @  12.1.2007,  15:56 Найти цитируемый пост)
1. Сравнить 2 строки(ну это полазил по форуму нашел, что мог) хотя не понятно что именно надо сравнить!

Чем выше по алфавиту, тем "меньше" считается строка. При равенстве разница ессно 0:

"арбуз"<"баран"<"барбос"<"яблоко".

Маленькая буква меньше большой. Алгоритм прост

Код

int compare(const char * str1, const char * str2)
{
  int len1=strlen(str1);
  int len2=strlen(str2);
  int min_len=MIN(len1,len2)

  for(int i=0;i<min_len;i++)
  {
     if(str1[i]!=str2[i]) return str1[i]-str2[i]; //Первое несовпадение. разница строк равняется разнице первого несовпавшего символа
  }
 
  if(len1<len2) return -1; //По алфавиту короткое слово выше, значит первая строка меньше
  if(len1>len2) return  1; //То же, с точностью наоборот.
  return 0; //строки одинаковы
}


Как расширенный вариант можно сообщать количество знаков, в которых строки разнятся.

Автор: sergejzr 12.1.2007, 17:21
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: a11en 12.1.2007, 20:01
Это не домашняя работа и не курсовая, это подготовка к экзамену и мне не нужно определенного примера, мне нужно было объяснение, но я подумал что если попрошу решить определеный пример то быстрее пойму, за сравнение строк спасибо, а с массивами что то протупил сам уже разобрался...

Но если я не прав то прошу прощения!
Форум суперский, надеюсь вы мне поможете если понадобится, а как сам чуть чуть научусь тоже буду помогать по мере возможностей...

Автор: a11en 12.1.2007, 20:53
ну все таки не получилось у меня сравнение строк....
если можно полностью рабочую программу, а то что я сделал у меня просто запускается и ничего не показывает!

Автор: Dray 12.1.2007, 21:53
Цитата(a11en @  12.1.2007,  20:53 Найти цитируемый пост)
а то что я сделал у меня просто запускается и ничего не показывает! 

Показал бы код. Тебе бы подсказали где ты ошибся.
А то если тебе просто предоставят готовую программу тебе всё равно в ней разбираться придется, а в своей то легче.

Автор: a11en 13.1.2007, 15:39
Я не плохо разбираюсь и в чужих программах, ибо очень люблю программирование, просто практики мало за счет этого туго сображаю как реализовать то или иное действие, но экзамен сегодня сдал, так что спешки нету сам попробую разобраться, если что обращюсь.

Спасибо за помощь!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)