C ++单词搜索-将找到的单词大写

时间:2018-12-14 04:44:04

标签: c++ arrays multidimensional-array wordsearch

我正在尝试编写一个程序,该程序将在单词搜索中找到的单词加以大写,但是将我的拼图文件与列表文件进行比较时,我确实非常困难

下面是“ List1.txt”

dog
call
ball
small
fall
paw
saw
draw
log
joy
red
who
ink
led
rim
door

下面是“ Puzzle1.txt”

f   v   c   b   s   j   v   m   e   y
a   j   a   k   s   d   u   y   t   l
l   m   l   d   y   e   o   w   k   i
l   p   l   x   r   j   h   k   n   b
b   a   l   l   i   a   w   o   i   z
s   s   a   w   m   x   w   p   a   w
o   m   j   d   r   k   o   l   x   d
z   k   a   e   a   h   d   j   o   y
w   q   v   l   q   q   e   o   p   g
m   d   c   z   l   q   r   h   g   h

...最后,下面是我到目前为止所拥有的,但是我还是很困惑

在第一个for循环中,第一个用于拼图,我无法让它正确地将列表输入2d数组中,它总是只会用看到的最后一个字符填充数组。

第二,在求解器部分所在的第三组循环中,我对如何正确地在各个方向上比较单词一无所知。我的第一个念头是将List1.txt单词的第一个字符与谜题进行比较,直到找到一个匹配项,然后在每个方向上等价于List1单词的长度,看是否匹配。

在意识到我搞砸了多少不同的事情之后,我决定只使用另一种方法重新启动求解器,这是我尝试在下面开始构建的方法。我试图一次遍历2d数组一个长度,该长度是List1单词的长度,然后查看它是向前还是向后匹配。如果不是这样,我只会翻一排并抓住这3或4个字符,几乎丢掉了第一个字母,然后在我要比较的内容的末尾添加了另一个。

那使我想到了媒介!我记得曾经学习过矢量,并且有点尝试使用它们,但是我再次陷入困境,困惑和不知所措。我在这里找到了几篇文章,对我有一点帮助,但还不够。

在这一点上,我真的不在乎使用什么方法,只要我希望可以学到一些新东西:D希望我提供了足够的信息。

#include<conio.h>
#include<iostream>
#include<istream>
#include<string>
#include<fstream>
using namespace std;

void main() {
    ifstream in;
    ofstream out;
    string throwawaystr="", word[16];
    int counter = 0, counter2 = 0, rows = 10, columns = 10, buffer = 0;
    char charVar, arr[10][10];

    //-//-//-//-(       \/PUZZLE\/      )-//-//-//-//
    in.open("Puzzle1.txt");
    while (!in.eof()) {             //input 2d array
        in >> charVar;
        for (int y = 0; y < columns; y++) {
            for (int x = 0; x < rows; x++) {
                arr[x][y] = charVar;
            }
        }
    }
    in.close();
    cout << "Puzzle:" << endl;
    for (int y = 0; y < columns; y++) {
        for (int x = 0; x < rows; x++) {
            cout << arr[x][y];
        }
        cout << endl;
    }
    cout << endl;
    //-//-//-//-(       \/LIST\/        )-//-//-//-//
    in.open("List1.txt");
    while(!in.eof()){
        in >> word[counter2];
        counter2++;
    }
    in.close();
    cout << "List:" << endl;
    for (int x = 0; x < counter2; x++) {
        cout << word[x] << endl;
    }
    cout << endl;
    //-//-//-//-(       \/SOLVER\/      )-//-//-//-//   
    for (int z = 0; z < word[z].length(); z++) {            
        for (int y = 0; y < columns; y++) {
            for (int x = 0; x < rows; x++) {
                while (throwawaystr.length() >= word[z].length() && buffer > (columns - word[z].length())) {
                    throwawaystr += arr[x][(y+buffer+word[z].length())];

                }
            }
        }
    }
    system("pause");
}

0 个答案:

没有答案