c - 打印出具有给定子字符串的链表的所有元素
问题描述
我正在尝试创建一个函数,您可以使用给定的子字符串打印出包含它的所有元素。从理论上讲,我认为可以通过使用 printAll 函数并将其转换为不是全部打印,而是只打印包含子字符串的元素。但相反,我得到了分段错误。我错过了什么?
服务器
void printSub(char sub[101], int *data_socket) {
struct phonebook *ptr = head;
while(ptr != NULL)
{
if(strstr(sub, ptr->first_name) != NULL || strstr(sub, ptr->last_name) != NULL || strstr(sub, ptr->phone_number) != NULL)
{
printf("(%s ",ptr->first_name);
write(data_socket, ptr->first_name, 31);
printf("%s ",ptr->last_name);
write(data_socket, ptr->last_name, 31);
printf("%s) ",ptr->phone_number);
write(data_socket, ptr->phone_number, 31);
printf("\n");
ptr = ptr->next;
}
else{
ptr = ptr->next;
}
}
}
// part of if statement where the code executes when user requests a search with given substring
else if(strcmp(data_char_array, "search" == 0)){
return_value = read(client_info,phone_char_array,101);
phone_char_array[return_value] = 0;
write(client_info, "searching", 11);
printList(phone_char_array, client_info);
}
客户
while(1)
{
return_value = write(data_socket, send, strlen(send));
if (return_value == -1)
{
perror("Error occurred while sending! Error at 0x1!");
exit(-1);
}
return_value = write(data_socket, argv[1], strlen(argv[1]));
if (return_value == -1)
{
perror("Error occurred while sending! Error at 0x2!");
exit(-1);
}
return_value = read(data_socket, recieve, 11);
recieve[return_value] = 0;
printf("Searching substring: %s\n", recieve);
if(strcmp(recieve, "searching") == 0)
{
return_value = read(data_socket,name,31);
name[return_value] = 0;
printf("%s ", name);
return_value = read(data_socket,last,31);
last[return_value] = 0;
printf("%s ", last);
return_value = read(data_socket,phone,101);
phone[return_value] = 0;
printf("%s ", phone);
printf("Search was successful\n");
解决方案
推荐阅读
- python - 从浮点值列表中挑选和创建多个范围内的新值列表
- mysql - 尝试使用 Mysql.Data.Entity 时出现异常
- sitecore9 - Sitecore 9.1 安装错误
- java - JavaFX - 使用来自不同类的对象参数启动应用程序
- javascript - 在数据集中的引号内添加 JSON 结果
- java - 使用 ObjectMapper 反序列化到参数化类时出现 ClassCastException,即使使用 TypeReference 和 TypeFactory
- sql-server - 用于清理称呼的正则表达式功能
- kubernetes - Kiali 在 aws 上的 kubernetes 上安装错误 [错误:无法识别“STDIN”:版本“v1”中的种类“ClusterRole”没有匹配项]
- python - Keras 在反向传播的多个输出的多个损失中找到最佳损失
- c# - windows wpf MVVC模式,如何在该模式中适应代码逻辑