Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Tìm SV theo tên trong DSLK đơn, lỗi invalid conversion from `char' to `const char*'

  1. #1
    Ngày gia nhập
    11 2011
    Bài viết
    9

    Unhappy Tìm SV theo tên trong DSLK đơn, lỗi invalid conversion from `char' to `const char*'

    Em có câu hỏi tìm SV theo tên trong DSLK đơn,
    Code:
    int Tim1SV(SV x,char key)
    {
    
    	int p=strcmp ( key , x.ten);
    
    	if(p==0)
    		return 1;
    	else
    		return 0;
    }
    
    int TimSV(Node* phead,char key,SV x)
    {
    	Node* p=phead;
    	while(p!=NULL)
    	{
    		if(Tim1SV(x,key)==1)
    			return 1;
    		else
    			p=p->next;
    	}
    	return 0;
    }
    Code em nó báo lỗi là :invalid conversion from `char' to `const char*' và initializing argument 1 of `int strcmp(const char*, const char*)'.Mấy anh chị giúp dùm em với.

  2. #2
    Ngày gia nhập
    01 2011
    Nơi ở
    -Mountain-
    Bài viết
    768

    Trích dẫn Nguyên bản được gửi bởi dk411 Xem bài viết
    Em có câu hỏi tìm SV theo tên trong DSLK đơn,
    Code:
    int Tim1SV(SV x,char key)
    {
    
    	int p=strcmp ( key , x.ten);
    
    	if(p==0)
    		return 1;
    	else
    		return 0;
    }
    
    int TimSV(Node* phead,char key,SV x)
    {
    	Node* p=phead;
    	while(p!=NULL)
    	{
    		if(Tim1SV(x,key)==1)
    			return 1;
    		else
    			p=p->next;
    	}
    	return 0;
    }
    Code em nó báo lỗi là :invalid conversion from `char' to `const char*' và initializing argument 1 of `int strcmp(const char*, const char*)'.Mấy anh chị giúp dùm em với.
    key của bạn là xâu hay là kí tự ? Lỗi thông báo ở đây là: cố tình chuyển đổi kiểu char sang const char*
    Hướng dẫn C++: https://www.youtube.com/watch?v=BwLodoQdoY4&list=PL1c9Uxlo-mplJDRGdONNupgo5OCBTyGGn

  3. #3
    Ngày gia nhập
    11 2011
    Bài viết
    9

    Trích dẫn Nguyên bản được gửi bởi beautifulsoul84hung Xem bài viết
    key của bạn là xâu hay là kí tự ? Lỗi thông báo ở đây là: cố tình chuyển đổi kiểu char sang const char*
    Key của em là một chuỗi ký tự người dùng nhập vào.Mà kiểu char và const char là sao vậy ah,em định nghĩa trong struct SV của em trường ten là char mà.

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Trích dẫn Nguyên bản được gửi bởi dk411 Xem bài viết
    Key của em là một chuỗi ký tự người dùng nhập vào.Mà kiểu char và const char là sao vậy ah,em định nghĩa trong struct SV của em trường ten là char mà.
    char là 1 kí tự trong mã ASCII .
    char * là con trỏ kiểu char hay nó đặc trưng cho chuỗi .
    const char * để chỉ : đây là chuỗi hằng .

    Bạn định nghĩa trường "ten" là char thì bó tay rồi. @@ Tên sao chỉ là 1 kí tự

  5. #5
    Ngày gia nhập
    12 2010
    Bài viết
    33

    bạn post cả code lên đây xem nào ,

  6. #6
    Ngày gia nhập
    11 2011
    Bài viết
    9

    Mặc định Tìm SV theo tên trong DSLK đơn, lỗi invalid conversion from `char' to `const char*'

    vậy bây giờ phải đổi lại làm sao ah,giúp em với,ngày mai em nộp bài rồi mà chỉ còn vướng mỗi câu này và câu sắp xếp DStăng theo mã SV thôi.hix

  7. #7
    Ngày gia nhập
    11 2011
    Bài viết
    9

    Trích dẫn Nguyên bản được gửi bởi hoangkianh31592 Xem bài viết
    bạn post cả code lên đây xem nào ,
    Code:
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>
    typedef struct SINHVIEN
    {
    	float ma;
    	char ten[10];
    	float dtb;
    }SV;
    typedef struct Node
    {
    	SV info;
    	struct Node* next;
    }Node;
    void KhoiTao(Node* &phead)
    {
    	phead=NULL;
    }
    int KTRong(Node* phead)
    {
    	if(phead==NULL)
    		return 1;
    	else
    		return 0;
    }
    Node* TaoNode(SV x)
    {
    	Node* p=new Node;
    	if(p==NULL)  return NULL;
    	else
    	{
    		p->info =x;
    		p->next=NULL;
    	}
    	return p;
    }
    void Nhap1SV(SV &x)
    {
    	float f,t;
    	printf("nhap MSSV:");
    	scanf("%f",&f);
    	x.ma=f;
    	flushall();
    	printf("nhap ho ten:");
    	gets(x.ten);
    	printf("nhap DTB:");
    	scanf("%f",&t);
    	x.dtb=t;
    }
    void ChenDau(Node* &phead,SV x)
    {
    	Node* p=TaoNode(x);
    	if(KTRong(phead)==1)
    		phead=p;
    	else
    	{
    		p->next=phead;
    		phead=p;
    	}
    }
    void ChenCuoi(Node* &phead,SV x)
    {
    	Node* tam=TaoNode(x);
    	if(KTRong(phead)==1)
    		phead=tam;
    	else
    	{
    		Node* p=phead;
    		while(p->next!=NULL)
    		{
    			p=p->next;
    		}
    		tam->next=NULL;
    		p->next=tam;
    	}
    }
    /*SV Tim1SV(SV x,char key)
    {
    
    	int p=strcmp ( key , x.ten);
    
    	if(p==0)
    		return 1;
    	else
    		return 0;
    }
    
    int TimSV(Node* phead,char key,SV x)
    {
    	Node* p=phead;
    	while(p!=NULL)
    	{
    		if(Tim1SV(x,key)==1)
    			return 1;
    		else
    			p=p->next;
    	}
    	return 0;
    }
    */
    void XoaDau(Node* &phead)
    {
    	Node* p=phead;
    	phead=phead->next;
    	delete p;
    }
    int DemSV(Node* phead)
    {
    	int dem=0;
    	Node* p=phead;
    	while(p!=NULL)
    	{
    		dem++;
    		p=p->next;
    	}
    	return dem;
    }
    int LocDTB(SV x)
    {
    	 if(x.dtb>5 && x.dtb<8)
    		return 1;
    	 else
    		return 0;
    }
    void HoanVi(SV &a,SV &b)
    {
    	SV tam=a;
    	a=b;
    	b=tam;
    }
    void Xuat1SV(SV x)
    {
    	printf("MSSV:%f\t",x.ma);
    	printf("ho va ten:%s\t",x.ten);
    	printf("DTB:%f\n",x.dtb);
    }
    void XuatNode(Node* phead)
    {
    	Node* p=phead;
    	while(p!=NULL)
    	{
    		Xuat1SV(p->info);
    		p=p->next;
    	}
    }
    void TimDTB(Node* phead)
    {
    	Node* p=phead;
    	while(p!=NULL)
    	{
    		if(LocDTB(p->info)==1)
    			printf("SV co DTB tu 5->8\n");
    			Xuat1SV(p->info);
    			getch();
    		p=p->next;
    	}
    }
    void main()
    {
    	SV x;
    	int chon,n;
    	Node * phead;
    	clrscr();
    	KhoiTao(phead);
    	do
    	{
    		printf("\n0:thoat\n");
    		printf("1:nhap SV\n");
    		printf("2:chen SV vao cuoi\n");
    		printf("4:Xoa SV dau tien\n");
    		printf("5:Tong so SV\n");
    		printf("6:Xuat DSSV\n");
    		printf("7:Cac SV co DTB tu 5->8\n");
    		printf("tuy chon:");
    		scanf("%d",&chon);
    		switch(chon)
    		{
    			case 1:	Nhap1SV(x);
    				ChenDau(phead,x);
    				XuatNode(phead);
    				getch();
    				clrscr();
    				break;
    			case 2:	Nhap1SV(x);
    				ChenCuoi(phead,x);
    				XuatNode(phead);
    				getch();
    				clrscr();
    				break;
    			case 4: XoaDau(phead);
    				XuatNode(phead);
    				getch();
    				clrscr();
    				break;
    			case 5: printf("Tong so SV:%d",DemSV(phead));
    				getch();
    				clrscr();
    				break;
    			case 6:	printf("Danh sach SV hien co\n");
    				XuatNode(phead);
    				getch();
    				clrscr();
    				break;
    			case 7: TimDTB(phead);
    				clrscr();
    				getch();
                                    break;
    			case 0: break;
    		}
    	}while(chon!=0);
    	getch();
    }
    Code của em đây,anh xem dùm,thank(em mới vào cho em hỏi câu gà tý,e ko thấy nút thank ở đâu cả,vậy làm sao để thank bây giờ???)

  8. #8
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Trích dẫn Nguyên bản được gửi bởi dk411 Xem bài viết
    Key của em là một chuỗi ký tự người dùng nhập vào.Mà kiểu char và const char là sao vậy ah,em định nghĩa trong struct SV của em trường ten là char mà.
    Ô hóa ra Key là 1 chuỗi kí tự ah ??
    Thế thì bạn phải định nghĩa tham số key ở hàm là kiểu char * chứ :P . Còn ko thì const char* cho chắc ăn

    Bạn định nghĩa char key là ko dc rùi :P

  9. #9
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    không thể so sánh trâu bò vs bàn ghế được hehe
    câu nói bất hữu của thầy.
    HT117-5277

  10. #10
    Ngày gia nhập
    12 2010
    Bài viết
    33

    Trích dẫn Nguyên bản được gửi bởi dk411 Xem bài viết
    Code của em đây,anh xem dùm,thank(em mới vào cho em hỏi câu gà tý,e ko thấy nút thank ở đâu cả,vậy làm sao để thank bây giờ???)
    Diễn đàn k có nút thank hay sao ý

    Lỗi kia thì sửa đơn giản thôi (với lại lưu ý bạn là tên 1 người khoảng từ 15-20 kí tự chứ , chưa kể ai tên dài : Công Tằng Tôn Nữ Diệu Thị Mộng Mơ chẳng hạn ):
    C Code:
    1. int Tim1SV(SV x,char key[30])
    C Code:
    1. int TimSV(Node* phead,char key[30])

    Mình thêm hàm tìm sv cho bạn nhé:
    C++ Code:
    1. case 8:
    2.                 {
    3.                     char key[30];
    4.                     printf ("\nnhap ten sinh vien can tim: ");
    5.                     fflush(stdin);gets(key);
    6.                     Node *p=phead;
    7.                     while (p)
    8.                     {
    9.                         if(Tim1SV(p->info,key)==1)
    10.                             Xuat1SV(p->info);
    11.                         else
    12.                             printf ("\nKhong tim thay sinh vien co ten %s",key);
    13.                         p=p->next;
    14.                     }
    15.                     getch();clrscr();   break;
    16.                 }

Các đề tài tương tự

  1. Kỹ thuật C++0x Lỗi invalid conversion from int to char * không rõ nguyên nhân
    Gửi bởi nguoixanh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 13-09-2013, 11:11 AM
  2. Convert char** to const char** như thế nào?
    Gửi bởi iamme22021990 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 31-05-2012, 10:27 PM
  3. sự khác nhau giữa: const char * và char const *
    Gửi bởi trihn_kt trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 18-03-2012, 08:29 AM
  4. lỗi cannot convert `const char*' to `const WCHAR*' for argument khi dùng autoit với c++
    Gửi bởi morongtraitim88 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 03-06-2011, 08:54 PM
  5. Bài tập C ham timkiem thông báo lổi:invalid conversion from `char' to `const char*'
    Gửi bởi weboys trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 22-05-2011, 09:45 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn