|

楼主 |
发表于 2020-12-19 14:39:29
|
显示全部楼层
这个是啥问题嘞,没有报错,能正常输入,最后查询的时候,没有结果
- #include<winuser.inl>
- #include<stdio.h>
- #include <cstdlib>
- #include<string.h>
- //从键盘输入姓名和电话号码,用#表示结束。编程实现输入姓名,查询电话号码的功能
- struct Phone_info
- {
- char name[20];
- int phone_number[20];
- }info[10];
- int compare_string(char str1[], char str2[])
- {
- int i = 0;
- int sign = 1; //1表示相等
- do
- {
- if (str1[i] != str2[i])
- {
- sign = 0;
- }
- i++;
- } while (str1[i] != '\n' && str2[i] != '\n' && sign != 0);
- return sign;
- }
- int main()
- {
- int i = 0;
- char sign;
- do
- {
- printf("请输入姓名:");
- scanf_s("%s", info[i].name,20);
- printf("\n");
- printf("请输入电话:");
- scanf_s("%d", info[i].phone_number);
- printf("\n");
- printf("是否继续输入(if not,按下#键,else,按下任意键):");
- scanf_s("%c", &sign); //输入scanf回车,直接把换行符给了sign,就无限循环了,所以给两次
- scanf_s("%c", &sign);
- i++;
- } while (sign != '#');
- char str[20];
- printf("enter the name of number:");
- scanf_s("%s", str, 20);
- for (int j = 0; j < 10 ;j++)
- {
- if (compare_string(info[j].name,str) == 1)
- {
- printf("name = %s\n", info[j].name);
- printf("phone = %d\n", info[j].phone_number);
- }
- }
- return 0;
- }
复制代码 |
|