Hallo in meinem Programm soll man wenn man einen text eingibt bestimmte dinge analysieren können(Zahl der Buchstaben, Zahl der Vokal ,...) ? allerdings stürzt das Programm ab, sobald man Umlaute eingibt
Mein bisheriger code aus mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->pushButton->hide();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_btnBuchstaben_clicked()
{
DeleteLetter();
CountLetter();
ShowLetter();
}
void MainWindow::DeleteLetter()
{
for (int i=0;i<256;i++)
Buchstaben[i]=0;
}
void MainWindow::ShowLetter()
{
QString work="";
QString einzel;
QString zahl;
ui->AnalyseWidget->clear();
ui->AnalyseWidget->addItem("Auswertung");
for (int i=0;i<256;i++){
einzel =" _____ ";
if (i>=32)
einzel[0]=char(i);
else {
if (i<10){
einzel[0]='0';
einzel[1]='0'+i;
}
else if (i< 20) {
einzel[0]='1';
einzel[1]='0'+i-10;
}
else if (i<30) {
einzel[0]='2';
einzel[1]='0'+i-20;
}
else {
einzel[0]='3';
einzel[1]='0'+i-30;
}
}
zahl = QString::number(Buchstaben[i]);
for (int j = zahl.length()-1;j>=0;j--)
einzel[7-zahl.length()+j]=zahl[j];
work = work + einzel;
if ((i+1)%8==0)
{
ui->AnalyseWidget->addItem(work);
work="";
}
}
}
void MainWindow::CountLetter()
{
QString Area = ui -> EingabeEdit -> toPlainText();
for(int i = 0; i < Area.length();i++)
Buchstaben[Area[i].toLatin1()]++;
}
void MainWindow::on_btnWoerter_clicked()
{
CountWords();
}
void MainWindow::CountWords()
{
QString Area;
Area = ui -> EingabeEdit -> toPlainText();
int i = 0, w = 0;
bool Word = false;
while (i < Area.length())
{
if (Area[i] == ' ' && Word)
{
Word = false;
w++;
}
if (Area[i] == ' ' && !Word)
{
}
if (Area[i] != ' ' && Word)
{
}
if (Area[i] != ' ' && !Word)
{
Word = true;
}
i++;
}
if (Word == true)
{
w++;
}
QString o = QString::number(w);
QString output = "Der Text hat " + o + " Wörter";
ui -> AnalyseWidget -> clear();
ui -> AnalyseWidget -> addItem(output);
}
//Vokale - aus vorhandenem Array rausholen
//Zahlen nachschauen und ausgeben