在假定的银行数据库中,我制作了一个50x7字符的指针数组(每个用户有50个用户,7条信息[字符串])。使用指针搜索特定字符串
我必须要求用户输入用户名(第5列包含所有50个用户名),以便程序在该数组中找到它并删除与该用户相关的所有信息(用0替换该行的所有列) 。
无论何时我输入用户名并按Enter键以搜索和“擦除”程序,它立即崩溃。
我是一个认真的编程,所以尽可能简单。 (没有自动功能),每个变量和指针都正确启动。
以下是困扰我的具体部分。感谢您的时间我花了整整一天的时间试图解决这个问题。
char* users[50][7];
char deluser[50], delaction[50]; //Delete Existing User
int flagfinder, delmenu, flagresearch=0; //Delete Existing User
while (delmenu == 0) {
flagfinder = 0;
printf("Type the username of the customer you want to erase off of the database:\n");
scanf("%s", deluser);
for (x = 0; x < 50; x++) {
y = 1;
while (flagresearch == 0 || y < 50) {
if (deluser[y] != *(users[x][5] + y)) {
flagresearch = 1;
}
y++;
}
if (flagresearch == 0) {
printf("Are you sure you want to delete %s's info?(Yes/No)\n", deluser);
scanf("%s", delaction);
while (strcmp(delaction, "Yes") != 0 && strcmp(delaction, "No") != 0) {
printf("Try again.Are you sure you want to delete %s's info?(Yes/No)\n", deluser);
}
if (strcmp(delaction, "Yes") == 0) {
for (y = 0; y < 7; y++) {
*users[x][y] = 0;
}
printf("\n%s's data has been erased from the mainframe.\n\n");
flagfinder = 1;
delmenu = 1;
} else
if (strcmp(delaction, "No") == 0) {
}
}
}
if (flagfinder == 0) {
printf("There is no %s in the database.\n", deluser);
}
}
请格式化此代码,并且不要使用非标准的东西,比如'system(“cls”)'因为我们很多人都没有windows机器,所以很难测试你的代码。如果您没有发布“deluser”的声明/定义,则无法为您提供帮助。 –
欢迎来到Stackoverflow。请花时间审查[如何提出一个好问题]的帮助(http://stackoverflow.com/help/how-to-ask)。具体而言,您提供的代码不完整。请提供代码的[最小完整和可验证示例](http://stackoverflow.com/help/mcve)。 – kaylum
@iharob系统(“cls”)只是“清除”屏幕。添加了使用变量/指针的声明。 – mindonmoney