![](/img/trans.png)
[英]Weird Error, error: invalid conversion from ‘const char*’ to ‘char’ [-fpermissive]
[英]How to fix error invalid conversion from 'char' to 'const char*' [-fpermissive]?
嗨,我是初學者,我必須使用庫在 C++ 中制作一個簡單的電話簿程序。 我肯定會使用,但我不允許使用它,因為它用於作業。 下面是我的代碼,直到現在我有 3 個錯誤,我不知道如何解決。 我知道從 char 到 const char* 的轉換是不允許的,但我真的需要比較這兩種類型 c arrays,但我不知道該怎么做。 我正在使用 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;
}
可能你對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;
}
temp 和 temp1 是char
。 strcmp 期望const char*
。
我建議對 C++ 使用std::string
,它是 char* 的包裝器,並且有更多方便的方法可以使用。
我將從頭開始,因為這段代碼真的很不方便。 很抱歉提出了一個不必要的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.