Wenn Sie keine Standardbibliotheksfunktionen verwenden möchten, finden Sie unten eine Lösung.
#include <iostream>
#include <string>
bool CheckSubstring(std::string firstString, std::string secondString){
if(secondString.size() > firstString.size())
return false;
for (int i = 0; i < firstString.size(); i++){
int j = 0;
if(firstString[i] == secondString[j]){
while (firstString[i] == secondString[j] && j < secondString.size()){
j++;
i++;
}
if (j == secondString.size())
return true;
}
}
return false;
}
int main(){
std::string firstString, secondString;
std::cout << "Enter first string:";
std::getline(std::cin, firstString);
std::cout << "Enter second string:";
std::getline(std::cin, secondString);
if(CheckSubstring(firstString, secondString))
std::cout << "Second string is a substring of the frist string.\n";
else
std::cout << "Second string is not a substring of the first string.\n";
return 0;
}
Haben Sie char * Zeichenfolge oder die Zeichenfolge der STL bedeuten? – anthares
Es ist kein char * String. Ich musste enthalten, um es zu verwenden. –
neuromancer
Einige der Lösungen verwenden s2 für die Zeichenfolge, die ich finden möchte. Funktioniert es noch, wenn ich etwas wie "das ist ein String" anstelle von s2 verwende? – neuromancer