#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define RECORDS 2
int main() {
typedef struct {
char firstName[30];
char lastName[30];
char street[35];
char city[20];
char state[3];
int zip;
char phone[15];
int accountId;
} Customer ;
Customer customerArray[RECORDS];
typedef int records;
records i = 0;
printf("================================================================\n");
for(i = 0; i < RECORDS; ++i)
{
printf("Enter data for customer %d\n", i + 1);
printf("Enter firstname, last name, phone\n");
scanf("%s %s %s", customerArray[i].firstName, customerArray[i].lastName, customerArray[i].phone);
scanf("%*c");
printf("Enter Address (Street City State ZIP\n");
scanf("%s %s %s %d", customerArray[i].street, customerArray[i].city, customerArray[i].state, &customerArray[i].zip);
scanf("%*c");
}
for(i = 0; i < RECORDS; ++i) {
char input[3]= {'\0'};
printf("please enter state:\n");
scanf("%s",input);
int strcmp(const char *s1, const char *s2);
int strncmp(const char *s1, const char *s2, size_t n);
char *custstate = customerArray[i].state;
char *statelookup = input;
if (strcmp(custstate, statelookup) == 0) {
printf("\nData for customer number:%s", customerArray[i].accountId);
printf("\nAccount:%s", customerArray[i].accountId);
printf("\n Name:%s %s",customerArray[i].firstName, customerArray[i].lastName);
printf("\nAddress:%s %s %s %d",customerArray[i].street, customerArray[i].city, customerArray[i].state, customerArray[i].zip);
printf("\nPhone:%s",customerArray[i].phone);
}
else
printf("Could not find a match");
}
return 0;
}
この構造体のメンバーの 1 つが正しくインクリメントされない理由を理解するのに苦労しています。アカウント ID は不正確な出力を生成します。また、顧客番号が正しく生成されていません。例: 1、2 など。
上記のメンバーの出力は次のようになります...
顧客番号のデータ:1606416396 アカウント:1606416396
どこに見えるべきか
顧客 1 のデータ アカウント 1
何が間違っているのかわかりません。まだ C を学んでいます。どんな助けでも大歓迎です!
メンバーをヌル終了する必要があると考えています。しかし、それが本当かどうか、またはその方法についてはわかりません。