嗨,我是初學者,我必須使用庫在 C 中制作一個簡單的電話簿程式。我肯定會使用,但我不允許使用它,因為它用于作業。下面是我的代碼,直到現在我有 3 個錯誤,我不知道如何解決。我知道從 char 到 const char* 的轉換是不允許的,但我真的需要比較這兩個型別的 c 陣列,但我不知道如何做。我正在使用 strcmp 并且我正在使用 '\0' 作為看起來正確的字符。
#include <iostream>
#include <cstring>
using namespace std;
struct contact {
char name[30];
char surname[30];
char phone_number[30];
};
int main() {
for (int i = 0; i < 30; i )
{
if (strcmp(person.name[i],person.surname[i]) != '\0') <--- //ERROR HERE
cout << person.name[i] << person.surname[i] << person.phone_number[i];
check ;
}
char temp;
char temp1;
cout << "Insert the name of the contact to delete: \n";
cin >> temp;
cout << "Insert the surname of the contact to delete: \n";
cin >> temp1;
int check = 0;
for (int i = 0; i < 30; i )
{
if (strcmp(temp,person.name[i]) == 0 && strcmp(temp1, person.surname[i]) == 0)
{ ^-- // 2 ERRORS HERE CONVERSION FROM 'CHAR' TO 'CONST CHAR*'
cout << "Contact deleted!\n";
person.name[i] = '\0';
person.surname[i] = '\0';
person.phone_number[i] = '\0';
check ;
}
if (check == 0)
{
cout << "This person is not in your contact list\n ";
return 0;
}
uj5u.com熱心網友回復:
可能你對struct不是很了解,這里是我修改過的一個sample,你可以參考一下
#include <iostream>
#include <stdio.h>
using namespace std;
struct person{
char name[30];
char surname[30];
char phone_number[30];
};
int main()
{
person Persons[] = { // structure initialization
{"Bob","Thug Bob","01230123"},
{"Marry","Gangster Marry","9999999"},
{"Somebody","Mr Somebody","777777"}
};
int Size = sizeof(Persons)/sizeof(Persons[0]); // return size of Persons array
for(int i=0;i<Size;i ){
cout << Persons[i].name << "\t"<< Persons[i].surname << "\t"<< Persons[i].phone_number <<endl;
}
return 0;
}
uj5u.com熱心網友回復:
temp 和 temp1 是chars。strcmp 期望const char*.
我建議使用std::stringfor C ,它是 char* 的包裝器,并且有更多方便的方法可以使用。
uj5u.com熱心網友回復:
我將從頭開始,因為這段代碼真的很不方便。很抱歉提出了一個不必要的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/537140.html
下一篇:在初始化期間參考成員是否有效?
