假设我有一个字符串"qwerty"
,我希望找到其中e
字符的索引位置。 (在这种情况下,索引应该是2
)如何找到C中字符串中的字符索引?
如何在C中执行此操作?
我找到了strchr
函数,但它返回一个指向字符而不是索引的指针。
假设我有一个字符串"qwerty"
,我希望找到其中e
字符的索引位置。 (在这种情况下,索引应该是2
)如何找到C中字符串中的字符索引?
如何在C中执行此操作?
我找到了strchr
函数,但它返回一个指向字符而不是索引的指针。
距离和strchr什么回报减去字符串地址:
char *string = "qwerty";
char *e;
int index;
e = strchr(string, 'e');
index = (int)(e - string);
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.
}
此代码是未经测试的当前,但它体现了正确的概念。
您也可以使用strcspn(string, "e")
,但这可能会慢得多,因为它能够处理多个可能字符的搜索。使用strchr
并减去指针是最好的方法。
什么:
char *string = "qwerty";
char *e = string;
int idx = 0;
while (*e++ != 'e') idx++;
复制到e保留原始的字符串,我想如果你不在乎,你可以只工作在*串
[String.indexOf功能的
可能重复C](http://stackoverflow.com/questions/4824/string-indexof-function-in-c) – 2015-07-29 13:52:32