给定两个char类型的大向量和小向量,我们想通过以下方式检查第一个向量是否包含第二个:所有的小字符必须以相同的顺序出现大的,尽管它们不一定是连续的。例如,大向量={'d','e','s','t','i','n','o'}弱地包含小向量={'s','i'},但不包含小向量={'i','s'}。构建一个程序,从键盘读取大矢量字符,当输入#字符时停止输入。输入小矢量字符时,请执行同样的操作。程序将指示大向量是否包含小向量。
null
null
null
#include <iostream>
using namespace std;
int main(){
const char stop = '#';
const int maxNumber = 200;
char big[maxNumber],
small[maxNumber];
char car;
int usefulBig, usefulSmall;
int used;
bool found;
cout << "Búsqueda -débil- de un vector de carteres dentro de otro\n"
<< "Introduzca los cartereses del vector grande, con terminador "
<< stop << "\n"
<< "A continuación introduzca los caracterees del vector pequeño,"
<< " usando el mismo terminador.\n\n";
// Lectura
car = cin.get();
used = 0;
while (car != stop && used < maxNumber){
big[used] = car;
car = cin.get();
used++;
}
}
有不同的方法来解决这个问题(在CS中总是这样)。
或