SO 部分文字列の開始位置とその長さを取得する部分文字列関数があります。これにより、文字列関数を実際に使用せずに、文字列を抽出して文字列として返す必要があります。
//default constructor that sets the initial string to the value "Hello World"
MyString::MyString()
{
char temp[] = "Hello World";
int counter(0);
while(temp[counter] != '\0')
{
counter++;
}
Size = counter;
String = new char [Size];
for(int i=0; i < Size; i++)
String[i] = temp[i];
}
//copy constructor
MyString::MyString(const MyString &source)
{
int counter(0);
while(source.String[counter] != '\0')
{
counter++;
}
Size = counter;
String = new char[Size];
for(int i = 0; i < Size; i++)
String[i] = source.String[i];
}
ここに私の部分文字列関数があります:
MyString MyString::Substring(int start, int length)
{
char* leo = new char[length+1];
for(int i = start; i < start + length+ 1; ++i)
{
leo[i-start] = String[i];
}
MyString sub;
delete [] sub.String;
sub.String = leo;
sub.Size = length+1;
return sub;
}
main.cpp ファイルの次のコードを使用します。
int main (int argc, char **argv)
{
MyString String1; // String1 must be defined within the scope
const MyString ConstString("Target string"); //Test of alternate constructor
MyString SearchString; //Test of default constructor that should set "Hello World".
MyString TargetString (String1); //Test of copy constructor
cout << "Please enter two strings. ";
cout << "Each string needs to be shorter than 256 characters or terminated by /\n." << endl;
cout << "The first string will be searched to see whether it contains exactly the second string. " << endl;
cin >> SearchString >> TargetString; // Test of cascaded string-extraction operator
if(SearchString.Find(TargetString) == -1) {
cout << TargetString << " is not in " << SearchString << endl;
}
else {
cout << TargetString << " is in " << SearchString << endl;
cout << "Details of the hit: " << endl;
cout << "Starting position of the hit: " << SearchString.Find(TargetString) << endl;
cout << "The matching substring is: " << SearchString.Substring(SearchString.Find(TargetString), TargetString.Length()-1)<<"\n";
}
戻り値:
文字列を 2 つ入力してください。各文字列は 256 文字未満にするか、 / で終了する必要があります。最初の文字列が検索され、2 番目の文字列が正確に含まれているかどうかが確認されます。
永遠に
もっと
もっと見る 世界は永遠ではない
余分な文字なしでユーザー入力から単語を実際に出力しない理由について何か考えはありますか? 道に迷いました。