bod*_*ydo 36 c indexing strchr
假设我有一个字符串"qwerty",我希望在其中找到e字符的索引位置.(在这种情况下,索引将是2)
我怎么用C做?
我找到了strchr函数,但它返回一个指向字符而不是索引的指针.
wj3*_*j32 69
只需从strchr返回的内容中减去字符串地址:
char *string = "qwerty";
char *e;
int index;
e = strchr(string, 'e');
index = (int)(e - string);
Run Code Online (Sandbox Code Playgroud)
请注意,结果为零,因此在上面的示例中它将为2.
void myFunc(char* str, char c)
{
char* ptr;
int index;
ptr = strchr(str, c);
if (ptr == NULL)
{
printf("Character not found\n");
return;
}
index = ptr - str;
printf("The index is %d\n", index);
ASSERT(str[index] == c); // Verify that the character at index is the one we want.
}
Run Code Online (Sandbox Code Playgroud)
该代码目前未经测试,但它演示了正确的概念。