void delete_contact(User *user) { char name[MAX_NAME_LEN]; int i,j; printf(">>请输入要删除的联系人姓名:"); scanf("%s", name); printf("查找结果:\n"); for (i = 0; i < user->num_contacts; i++) { if (strstr(user->contacts[i].name, name) != NULL) { printf("\t\t\t%-5s\t%-5s\t%-5s\t%-15s\t%-15s\t%-15s\n","姓名","性别","年龄","家庭电话","移动电话","办公电话"); printf("\t\t\t%-5s\t%-5s\t%-5d\t%-15s\t%-15s\t%-15s\n",user->contacts[i].name,user->contacts[i].sex,user->contacts[i].age,user->contacts[i].home_phone,user->contacts[i].mobile_phone,user->contacts[i].office_phone); } } printf(">>请再次输入要删除的联系人姓名:"); scanf("%s", name); for (i = 0; i < user->num_contacts; i++) { if (strcmp(user->contacts[i].name, name) == 0) { for (j = i; j < user->num_contacts - 1; j++) { user->contacts[j] = user->contacts[j + 1]; } user->num_contacts--; printf("*联系人删除成功!(记得按5选项保存数据)\n"); return; } } printf("*未找到该联系人,请重试!\n"); }的参数和返回值
时间: 2024-01-28 08:03:26 浏览: 31
这段代码中的函数是一个无返回值函数,参数是一个指向User类型的指针变量。
函数的作用是从用户的联系人列表中删除指定姓名的联系人信息。函数中首先提示用户输入要删除的联系人姓名,并在联系人列表中查找姓名包含指定字符串的联系人,并输出查找结果。然后再次提示用户输入要删除的联系人姓名,并在联系人列表中查找指定姓名的联系人,并将该联系人从列表中删除。最后输出删除成功信息或未找到该联系人信息。
函数中使用了两次for循环,第一次循环用于查找指定字符串的联系人,并输出查找结果;第二次循环用于查找指定姓名的联系人,并将该联系人从列表中删除。函数中使用了字符串比较函数strcmp()和字符串查找函数strstr()。
相关问题
解释typedef struct { char name[MAX_NAME_LEN]; int age; char phone[MAX_PHONE_LEN]; char email[MAX_EMAIL_LEN]; } Tourist; extern Tourist tourists[MAX_NUM_TOURISTS]; extern int num_tourists; void add_tourist(); void search_tourist(); void list_tourists(); void delete_tourist(); void Function3();
这是一个旅游管理系统的函数列表,其中定义了一个名为Tourist的结构体,它包含以下成员变量:
- name: 旅游者的姓名,类型为字符串。
- age: 旅游者的年龄,类型为整数。
- phone: 旅游者的电话号码,类型为字符串。
- email: 旅游者的电子邮箱,类型为字符串。
此外,还声明了一个名为tourists的Tourist类型的数组,用于存储所有的旅游者信息;以及一个num_tourists变量,表示当前系统中旅游者的数量。
以下是每个函数的简要说明:
- add_tourist(): 向系统中添加新的旅游者。
- search_tourist(): 查询特定的旅游者信息。
- list_tourists(): 显示系统中所有旅游者的信息。
- delete_tourist(): 删除特定的旅游者。
- Function3(): 该函数没有具体说明,可能是一个未实现的占位函数。
用c语言补充添加字符删除函数,能够在字符串中找到并删除指定的字符,要求函数原型为: void delete_c(char*str,
### 回答1:
charc)。
函数实现如下:
```c
void delete_c(char* str, char c) {
// 遍历字符串中的每个字符
for(int i = 0; str[i] != '\0'; i++) {
// 如果当前字符等于指定字符,则将后面的字符左移一位
if(str[i] == c) {
int j = i;
while(str[j] != '\0') {
str[j] = str[j+1];
j++;
}
// 因为左移了一位,所以需要回退一步,否则会跳过一个字符
i--;
}
}
}
```
使用示例:
```c
#include <stdio.h>
void delete_c(char* str, char c);
int main() {
char str[] = "this is a test";
printf("原字符串:%s\n", str);
delete_c(str, 't');
printf("删除t后的字符串:%s\n", str);
return 0;
}
void delete_c(char* str, char c) {
// 遍历字符串中的每个字符
for(int i = 0; str[i] != '\0'; i++) {
// 如果当前字符等于指定字符,则将后面的字符左移一位
if(str[i] == c) {
int j = i;
while(str[j] != '\0') {
str[j] = str[j+1];
j++;
}
// 因为左移了一位,所以需要回退一步,否则会跳过一个字符
i--;
}
}
}
```
### 回答2:
void delete_c(char *str, char c){
if (str == NULL || *str == '\0') {
return; // 如果字符串为空,直接返回
}
char *p1 = str; // 定义指针p1指向字符串的起始位置
char *p2 = str; // 定义指针p2指向字符串的起始位置
while (*p2 != '\0') {
if (*p2 != c) { // 如果当前字符不等于指定的字符c
*p1++ = *p2; // 将当前字符复制到p1指向的位置,并将p1指向下一个位置
}
p2++; // p2指向下一个字符
}
*p1 = '\0'; // 在最后加上字符串结束符
}
这个函数通过两个指针p1和p2遍历字符串,当p2指向的字符不等于指定的字符c时,将字符复制到p1指向的位置,并将p1指向下一个位置。最后在字符串结束的地方加上字符串结束符。这样就能实现删除字符串中指定字符的功能。
### 回答3:
void delete_c(char *str, char c) {
if (str == NULL) {
return;
}
int len = 0;
while (str[len] != '\0') {
len++;
}
int i, j;
for (i = 0, j = 0; i < len; i++) {
if (str[i] != c) {
str[j] = str[i];
j++;
}
}
str[j] = '\0';
}
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)