实现函数:int findchar(char **strings, char value);在字符串列表strings中查找特定字符value,返回匹配到的字符串个数。如:
字符串列表:“123ASDFG”,“QWRTYOIA”,”ZXCVNMG”查找字符’G’时,返回2。查找字符L时,返回0。其中字符串列表strings是一个指向以NULL结尾的指针列表的指针。
改了无数遍的结果:
#include <stdio.h>
int findchar(char** strings, char value) {
int count = 0; // 用于计数包含查找字符的字符串数量
char** string_ptr = strings;
// 检查指针是否为NULL
if (string_ptr == NULL) {
printf("Error: strings pointer is NULL\n");
return 0;
}
// 遍历字符串数组
while (*string_ptr != NULL) { // 检查当前字符串指针是否为NULL
char* string = *string_ptr; // 创建一个指向当前字符串的局部指针
// 确保string不是NULL
if (string == NULL) {
printf("Error: Found NULL string in the array\n");
string_ptr++; // 跳过NULL字符串,继续检查下一个
continue;
}
// 遍历当前字符串的每个字符
for (int j = 0; string[j] != '\0'; j++) {
if (string[j] == value) {
// 如果找到了匹配的字符
count++; // 增加计数
break; // 跳出内层循环,因为当前字符串已经找到了
}
}
string_ptr++; // 移动到下一个字符串
}
return count; // 返回计数结果
}
// 示例使用
int main() {
char* strings[] = { "Hello", "World", "Apple", "Zoo", NULL }; // 最后一个元素为NULL,表示字符串数组的结束
char value = 'o'; // 举例,你要查找的字符
int result = findchar(strings, value);
printf("总共有 %d 条字符串包含字符 '%c'\n", result, value);
return 0;
}