私は現在、オペレーティングシステムに取り組んでいます。ただし、開発者向けに「String」型を作成する必要がありました。typedef と列挙を試してみましたが、それらはすべて私のニーズに合いませんでした。タイプ文字列を Windows の VB.Net のように機能させたいと考えました。このような:
string a
a = "Hello, "
a.CombineString ("World")
int a = a.NumberOfChars ()
だから私はこれを思いついた(C ++で)
class string {
char * value = NULL; //My Operating System's Kernel's Printf Function Uses Char Pointers
bool CompareString (char *);
int NumberOfChars () {return (!value);}
void CombineString (char *);
}
bool string::CompareString(char * string_to_compare_with) {
int return_prototype = 0;
return_prototype = strcmp(string::value, string_to_compare_with); //The strcmp () function returns 0 if the char*s are the same and 1 if different.
if(return_prototype == 0) {
return true;
} else {
return false;
}
}
void string::CombineString(char * string_to_add) {
value = strcpy(value, string_to_add);
}
int main() {
string a;
a.value = "Hello, ";
a.CombineString("World!!");
Printf(a);
}
これは文字列 "Hello, World!!" を出力します。私のオペレーティングシステムのコンソール画面で。でも行きたいだけ
string a = "Hello, ";
いいえ
string a;
a.value = "Hello, ";
私は何をすべきか?