Эй, ребята, я получаю ошибку вне диапазона для string.at (x), и я понятия не имею, почему. Любая помощь, в основном, я пытаюсь убедиться, что первый символ не является < 'A' или> 'z' в моей строке объекта. Также я думаю, что мое сравнение строк может работать некорректно, но это может иметь больше общего с незавершенным кодом, если я нахожу уникальное слово с дубликатами.Вне диапазона строка?
struct wordCount{
string word;
int count;
}storeword[100];
void countWordFreq(wordCount compares[]){
int a=0;
unsigned i=0;
for(a;a<101;a++){
cout<<"Length"<<compares[a].word.length();
if(compares[a].word.at(i)<='z'||compares[a].word.at(i)>='A'){
compares[a].count++;
}
for(int b=1;b<101;b++){
cout<<"Length"<<compares[b].word.length();
if(compares[b].word.at(i)<='z'||compares[b].word.at(i)>='A'){
if(compares[a].word.compare(compares[b].word)==0){
cout<<"true" << endl;
compares[a].count++;
}
}
b++;
}
a++;
}
for(int q;/*compare[q].word.at(0)<='z'||compare[q].word.at(0)>='A'*/q<10;q++){
cout<<"Word: " << compares[q].word << " Count: " << compares[q].count << endl;
}
}
Я предполагаю, что размер массива 'comparees' равен' 100'. Если это так, счетчики индексов массива 'a' и' b' должны быть меньше, чем '100', не меньше, чем' 101'. Когда значение 'a' или' b' равно '100', вы получите неопределенное поведение из-за доступа к памяти за пределами диапазона. –