реклама на сайте
подробности

 
 
> IAR AVR функция strstr, не могу разобраться
SZ0
сообщение Jul 22 2010, 18:02
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 14-02-06
Пользователь №: 14 331



Код
u8 str_buff[100];
c8 __flash *OKin = "OK";

if(strstr((const c8 *)str_buff,(const c8 *)OKin)return 0;


strstr всегда выдаёт указатель на начало буфера, даже если ОК там нет. Т.е. в начале буфера могут быть любые символы, а потом ОК. Как я понимаю, не правильно преобразовываю. Но не могу понять, как правильно преобразовать типы. Сам массив в озу, а строки в нём ищутся из flash.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Jul 24 2010, 06:16
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Классический, писанный на 'C', strstr()
CODE
/*                      - STRSTR.C -

   The ANSI "strstr" function.

   $Revision: 38615 $

   Copyright 1986 - 1999 IAR Systems. All rights reserved.
*/

#include "string.h"

char *strstr(const char *s1, const char *s2)
{
  int n;

  if (*s2)
  {
    while (*s1)
    {
      for (n=0; *(s1 + n) == *(s2 + n); n++)
      {
        if (!*(s2 + n + 1))
          return (char *)s1;
      }
      s1++;
    }
    return NULL;
  }
  else
    return (char *)s1;
}

от него и плясать.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- SZ0   IAR AVR функция strstr   Jul 22 2010, 18:02
- - Xenia   Цитата(SZ0 @ Jul 22 2010, 21:02) Как я по...   Jul 22 2010, 18:36
|- - zltigo   QUOTE (Xenia @ Jul 22 2010, 21:36) Таковы...   Jul 22 2010, 19:10
||- - Xenia   Цитата(zltigo @ Jul 22 2010, 22:10) ....в...   Jul 22 2010, 20:52
||- - _Bill   Цитата(Xenia @ Jul 23 2010, 00:52) Ну вот...   Jul 23 2010, 03:36
||- - zltigo   QUOTE (Xenia @ Jul 22 2010, 23:52) Ну вот...   Jul 23 2010, 05:27
|- - SZ0   Спасибо за разъяснение. Придётся искомые строки в ...   Jul 23 2010, 02:32
- - SZ0   Строки пришлось определить так: Кодconst c8 OKin...   Jul 23 2010, 06:02
|- - zltigo   QUOTE (SZ0 @ Jul 23 2010, 09:02) Но вот е...   Jul 23 2010, 06:18
||- - mempfis_   Цитата(zltigo @ Jul 23 2010, 09:18) Писат...   Jul 23 2010, 06:46
|||- - _Bill   Цитата(mempfis_ @ Jul 23 2010, 10:46) +1 ...   Jul 23 2010, 16:28
|||- - _Bill   Я думаю, вашу функцию можно чуть-чуть эффективней ...   Jul 23 2010, 19:29
||- - IgorKossak   QUOTE (zltigo @ Jul 23 2010, 09:18) Писат...   Jul 23 2010, 06:50
|- - Xenia   Цитата(SZ0 @ Jul 23 2010, 09:02) Строки п...   Jul 23 2010, 11:10
|- - mempfis_   КодЗнаю два варианта решения вашей проблемы: ...   Jul 23 2010, 12:55
- - Xenia   _Bill, похоже на то, что ваш алгоритм даст неправи...   Jul 23 2010, 20:14
|- - _Bill   Цитата(Xenia @ Jul 24 2010, 00:14) _Bill,...   Jul 24 2010, 05:04
- - desh   Я использую функцию которая работает одновременно ...   Aug 3 2010, 12:48


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 23:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01384 секунд с 7
ELECTRONIX ©2004-2016