Разделение строки пространством в C

Для фильтрации вашего массива по названию компании нет необходимости писать свой собственный фильтр. Вы можете использовать фильтр angularjs с объектом. Попробуйте следующее

<input type="text" ng-model="search.text" class="form-control" id="search" placeholder="Search">

<div class='col-md-12' ng-repeat="(key,value) in cropplans | filter : {'company_name' : search.text}"> 
    <h4> {{value}}</h4>
</div>

Он не чувствителен к регистру, поэтому вам не нужно беспокоиться о преобразовании в строчные / прописные буквы.

7
задан The.Anti.9 27 November 2008 в 09:10
поделиться

3 ответа

strtok_r является Вашим другом.

Не используйте плоскость strtok(), поскольку это не ориентировано на многопотоковое исполнение.

Даже на платформах, где это ориентировано на многопотоковое исполнение (потому что состояние сохранено в Локальной памяти потока), существует все еще проблема, что использование внутреннего состояния означает, что Вы не можете проанализировать маркеры от нескольких строк одновременно.

например, если Вы пишете функцию, которая использует strtok() для разделения строки A функция не может быть вызвана в цикле второй функции, которая использует strtok() разделять строку B.

14
ответ дан 6 December 2019 в 10:04
поделиться

Если Вы владеете строковым буфером и знаете, что безопасно изменить, можно использовать strtok_r() поскольку люди предложили. Или Вы могли сделать это сами, как это:

char buffer[2048];
char *sp;

/* read packet into buffer here, omitted */

/* now find that space. */
sp = strchr(buffer, ' ');
if(sp != NULL)
{
  /* 0-terminate the first part, by replacing the space with a '\0'. */
  *sp++ = '\0';
  /* at this point we have the first part in 'buffer', the second at 'sp'.
}

Это могло бы быть быстрее и/или легче понять, в зависимости от контекста.

5
ответ дан 6 December 2019 в 10:04
поделиться

Это обычно делается с помощью strtok () вызов библиотеки. Предупредите, однако, что эта функция изменит входную строку (она вставляет '\0' символов NUL везде, которыми выбранный разделитель был найден) - таким образом, можно хотеть назвать strtok () на копии строки, если необходимо получить доступ ко всему этому позже.

Править: как упомянуто другим плакатом, "плоскость" strtok () не ориентирована на многопотоковое исполнение, таким образом, strtok_r () является более безопасной функцией для вызова. Я не уверен, имеет ли strtok_r () ту же проблему изменения оперативного входного буфера.

0
ответ дан 6 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: