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

我用C语言怎么做?

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

推荐答案

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

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

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

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

C++相关问答推荐

如何确保内存分配在地址附近?

C中空终止符后面的数字?

Ebpf内核代码:permission denied:invalid access to map value

为什么在C中二维字符数组会有这样的行为?

为什么内核使用扩展到前后相同的宏定义?

Win32API Wizzard97 PropSheet_SetWizButton不工作

在C++中使用函数指针的正确语法

加密解密工作正常,但返回错误0x80090005

C中的FREE函数正在触发断点

在C中创建任意类型的只读指针参数

条件跳转或移动取决于未初始化值(S)/未初始化值由堆分配创建(Realloc)

如何将大写/小写土耳其字母相互转换?

将数字的每一位数平方,并使用C将它们连接为一个数字(程序不能正确处理0)

当我在34mb的.mp4文件中使用FREAD时,我得到了一个分段错误,我如何解决它?

C中的数组下标和指针算法给出了不同的结果

GCC认为这是一个VLA是对的吗?

使用 c 中的 write() 函数将非 ASCII 字符写入标准输出

在C中定义函数指针?

为什么INT_MIN是在c语言的头文件limits.h中定义的(-INT_MAX-1)而不是直接使用-2147483648

使用邻接表创建图