C语言数据结构结构体查找字符串并返回首次出现的位置串
时间: 2024-10-15 16:19:56 浏览: 25
在C语言中,你可以使用结构体结合数组或者链表等数据结构来存储字符串,并通过遍历查找特定的字符串。如果你有一个结构体数组,例如`struct MyStruct`包含一个字符数组`char str[]`,你可以这样做:
```c
#include <stdio.h>
#include <string.h>
typedef struct {
char str[100];
} MyStruct;
int find_string_in_array(const char* target, const MyStruct* array, int size) {
for (int i = 0; i < size; i++) {
if (strstr(array[i].str, target) != NULL) { // 使用strstr比较字符串
return i;
}
}
return -1; // 如果没找到目标字符串,返回-1表示不存在
}
int main() {
MyStruct my_array[] = {
{"apple"},
{"banana"},
{"cherry"},
{"date"},
};
int array_size = sizeof(my_array) / sizeof(my_array[0]);
const char* search_str = "banana";
int index = find_string_in_array(search_str, my_array, array_size);
if (index != -1) {
printf("'%s' first appears at position %d.\n", search_str, index + 1); // 注意索引从0开始计数
} else {
printf("'%s' not found in the array.\n", search_str);
}
return 0;
}
```
在这个示例中,`find_string_in_array`函数会搜索结构体数组中的每个字符串是否包含目标字符串,并返回目标字符串第一次出现的索引位置。
阅读全文