c中indexof的用法

admin 48 0

C语言中并没有直接提供类似Java中的indexOf()函数,因为C语言是一种更低级别的语言,没有提供很多高级的字符串处理功能,我们可以使用标准库函数strstr()来查找一个字符串在另一个字符串中首次出现的位置。

下面是一个使用strstr()函数来查找一个字符串在另一个字符串中首次出现的位置的示例代码:

```c

#include

#include

int main() {

char str1[] = "Hello, world!";

char str2[] = "world";

char *result = strstr(str1, str2);

if (result != NULL) {

printf("The substring \"%s\" is found at index %ld.\n", str2, result - str1);

} else {

printf("The substring \"%s\" is not found.\n", str2);

}

return 0;

}

```

在上面的代码中,我们首先定义了两个字符串str1和str2,然后使用strstr()函数来查找str2在str1中首次出现的位置,如果找到了,就输出该位置的索引;否则输出未找到的消息,由于C语言的字符串索引是从0开始的,所以输出的索引值要减去1才能得到正确的位置。

需要注意的是,strstr()函数只能查找子串在主串中首次出现的位置,如果要查找子串在主串中所有出现的位置,需要使用其他函数或自己编写代码来实现。