我不能使用相同的第一个字母和最后一个来制作从文件单词(对单词或长度没有限制)读取的程序。我使用类和对象,首先我无法阅读它们
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
using namespace std;
class Texts{
public:
void Realding(string &All);
void Searching(string &text, char *Word);
};
int main()
{
Texts A;
string Text; char word[40];
A.Reading(Text);
A.Searching(Text, word);
system("PAUSE");
}
void Texts::Reading(string &All)
{
string temp;
ifstream read("Text.txt");
while (getline(read, temp)) { All += temp; All += "\n"; }
cout << All;
}
void Texts::Searching(string &text, char *Word)
{
int i = 0;
int j = 0;
int letters = 0;
int zodz = 0;
int index = 0;
while (1)
{
if (text[i] == ' ' || text[i] == '\0')
{
zodz++;
if (text[0] == text[i - 1])
{
letters = j;
for (int l = 0; l < letters; l++)
{
//cout << text[l];
}
j = 0;
}
if (text[i + 1 - j] == text[i - 1])
{
letters = j;
for (int l = i - j; l < letters; l++)
{
// cout << text[l];
}
j = 0;
}
}
if (text[i] == '\0') break;
else
i++;
j++;
}
}
我无法正确地从文件中读取... Text.txt看起来像
asdfa su egze hah ktis faf
以后如何选择带有第一个和最后一个相同字母的单词分配给数组,稍后按字母顺序对它们进行排序。谢谢,如果有人帮助我。
答案 0 :(得分:0)
从文件中读取:
std::ifstream in(NameOfFile);
std::string word;
while (in >> word) //will stop when word can't be read. probably bad file or end of file
{
// do something with word
}
查找具有相同的第一个和最后一个字母的单词
if (word[0] == word[word.length() - 1])
{
// do something with word
}
请注意,这不会处理大写字母的单词。它找不到&#34;妈妈&#34;。它可能会崩溃空话。两者都有微不足道的修复。
将单词分配给数组
array[index++] == word;
这假设您希望在插入数组后推进索引。请注意,如果阵列过满,程序将表现不佳。如果您被作业所允许,请考虑使用std::vector
。
对数组进行排序
std::sort(array, array + index);
这假设您可以使用std::sort
。同样,如果可能的话,使用std::vector
代替数组。在完成所有添加之后,假设index
是上面添加示例中的索引值。如果您不被允许使用std::sort
提出其他问题。这是一个冗长的话题。