30/09/2018, 20:26

(String) Lỗi về chuỗi bạn nào chỉ giúp minh lỗi sai

#include "iostream"
#include "string"
#include "stdlib.h"
using namespace std;
class String
{
private:
	char *a;
	int length;
public:
	String(const char* = "");
	int Size(const char*);
	void Input();
	void Output();
	friend ostream& operator<<(ostream &, char *);
	friend istream& getline(istream&, string& );
	~String();
};
String::String(const char* a)
{
}
int String::Size(const char* s)
{
	return strlen(s);
}
void String::Input()
{
	string z;
	cout << "Nhap chuoi :";
	getline(cin, z);
	length = z.size();
	a = (char*)malloc(length*sizeof(char));
	for (int i = 0; i < length; i++)
	{
		*(a + i) = z[i];
	}
}
void String::Output()
{
	cout << a;
}
ostream &operator<<(ostream& Output, char *a)
{
	for (int i = 0; i < strlen(a);i++)
		Output <<a[i];
	return Output;
}
istream& getline(istream& is, string& a)
{
	char ch;
	a.clear();
	while (is.get(ch) && ch != '
')
		a.push_back(ch);
	return is;
}
String::~String()
{
}
int main()
{
String a;
a.Input();
a.Output();
return 0;
}
Sáng Béo viết 22:29 ngày 30/09/2018
  • Bạn dùng strlen nên phải include thư viện string như cstring / string.h
  • Bạn dùng malloc nên phải include thư viện stdlib.h
  • main(): Hàm Intput sai, phải là Input, với lại bạn gọi hàm thì phải có ().
KhÁnh PhẠm QuỐc viết 22:26 ngày 30/09/2018

Bạn ơi dù sửa lại nhưng kết quả cũng không thay đổi

Sáng Béo viết 22:37 ngày 30/09/2018

#include "string"

cái này là #include <string.h> nha bạn.
còn lỗi thì mình chạy bằng Dev-C++ không thấy lỗi.


đã ra… chạy bằng Visual thì ra lỗi.
bạn thêm dòng a[length] = '\0'; vào cuối hàm Input nhé

Bài liên quan
0