Si vous ne souhaitez pas utiliser les fonctions de bibliothèque standard, voici une solution.
#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;
}
Voulez-vous dire char * chaîne ou la chaîne de la STL? – anthares
Ce n'est pas une chaîne char *. J'ai dû #include pour l'utiliser. –
neuromancer
Certaines des solutions utilisent s2 pour la chaîne que je veux trouver. Cela fonctionnera-t-il encore si j'utilise quelque chose comme "c'est une chaîne" au lieu de s2? – neuromancer