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;
}
Bài liên quan
strlen
nên phảiinclude
thư viện string nhưcstring
/string.h
malloc
nên phảiinclude
thư việnstdlib.h
main()
: HàmIntput
sai, phải làInput
, với lại bạn gọi hàm thì phải có()
.Bạn ơi dù sửa lại nhưng kết quả cũng không thay đổi
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é