假设我有一个字符串"qwerty",我希望找到其中e个字符的索引位置.(在本例中,索引为2)

我用C语言怎么做?

我找到了strchr函数,但它返回一个指向字符的指针,而不是返回索引.

推荐答案

只需从strhr返回的值中减去字符串地址:

char *string = "qwerty";
char *e;
int index;

e = strchr(string, 'e');
index = (int)(e - string);

请注意,结果是从零开始的,因此在上面的示例中它将是2.

C++相关问答推荐

无法删除C中文件夹内的文件

如何在一个 SIMD 向量中创建一个 0 索引的左压缩向量?

在 C 中使用 AVX 实现矩阵运算

在没有辅助函数的情况下转换函数指针参数

如果两个数字是相同的 0,则在 C++ 和 Root 中设置 0 条件

C unsigned long 与转换未正确添加

将所有位从最低有效位翻转到最高有效最后 1 位值的最有效方法是什么?

从数组伪排序

如何禁用特定功能的堆栈金丝雀?

Vmware Workstation 的 libusb_control_transfer 非常慢

我们可以使用变量根据需要给出数组中元素的数量吗?

如何仅使用互斥锁来解决哲学家进餐问题?

C中块内的函数声明

复制具有“memcpy”技术上未定义行为的二维数组?

为什么有 i++;一世 - ;紧随其后?

对平方数字求和时是否需要明确处理负数或零?

如何在 C++ 类内存结构中创建“间隔符”?

在 C++ 中,我是否为我不吃的东西买单?

Linux 上的异​​步信号处理程序是如何执行的?

使用指向过去的 malloc 的指针是否定义明确?