c中是否有一个函数可以返回char数组中char的索引?

Jos*_*ren 20 c string indexing function char

c中是否有一个函数可以返回char数组中char的索引?

例如:

char values[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char find = 'E';

int index = findIndexOf( values, find );
Run Code Online (Sandbox Code Playgroud)

Jes*_*der 49

strchr返回指向第一个匹配项的指针,因此要查找索引,只需使用起始指针获取偏移量.例如:

char values[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char find = 'E';

const char *ptr = strchr(values, find);
if(ptr) {
   int index = ptr - values;
   // do something
}
Run Code Online (Sandbox Code Playgroud)

  • 你没有告诉我什么是“#include” (2认同)

Joh*_*ode 6

还有size_t strcspn(const char *str, const char *set); 它返回s包含在中的字符第一次出现的索引set

size_t index = strcspn(values, "E");
Run Code Online (Sandbox Code Playgroud)


Mic*_*ker 5

int index = strchr(values,find)-values;
Run Code Online (Sandbox Code Playgroud)

注意,如果没有find找到,则strchr返回NULL,因此索引将为负数.