массивы — C ++ Word Search — Использование заглавных букв

Я пытаюсь написать программу, которая берет найденные слова в поиске слов и использует их заглавные буквы, но мне очень трудно сравнивать мой файл головоломки с моим списком

Ниже «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

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]