Ответов (7)7
Решение
0
я думаю что
size_t strcspn (const char * str1, const char * str2);
это то, что вы хотите. Вот пример, взятый отсюда :
/* strcspn example */
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] = "fcba73";
char keys[] = "1234567890";
int i;
i = strcspn (str,keys);
printf ("The first number in str is at position %d.\n",i+1);
return 0;
}
0
Напишите свой :)
Код из лицензированной BSD библиотеки обработки строк для C, называемой zString
https://github.com/fnoyanisi/zString
int zstring_search_chr(char *token,char s){
if (!token || s=='\0')
return 0;
for (;*token; token++)
if (*token == s)
return 1;
return 0;
}
0
Если вы не полностью привязаны к чистому C и можете использовать string.h, есть strchr () См. Здесь
0
strstr
возвращает указатель на найденный символ, поэтому вы можете использовать арифметику указателя: (Примечание: этот код не тестировался на его способность к компиляции, он в одном шаге от псевдокода.)
char * source = "test string"; /* assume source address is */
/* 0x10 for example */
char * found = strstr( source, "in" ); /* should return 0x18 */
if (found != NULL) /* strstr returns NULL if item not found */
{
int index = found - source; /* index is 8 */
/* source[8] gets you "i" */
}