爲什麼我的代碼有分段錯誤?我正在嘗試查看字符串中是否有兩個相同的字母。但是它怎麼會出現分段錯誤?分段錯誤C++爲什麼我的程序給我分段錯誤
#include<iostream>
#include<cstring>
using namespace std;
bool match(char[], int);
int main()
{
char word[20];
cout << "Enter a word: ";
cin >> word;
int length = strlen(word);
if (match(word, length)) cout << "It has two letters that are the same" <<
endl;
else cout << "There is no same letters" << endl;
return 0;
}
bool match(char word[], int length)
{
bool found = false;
for (int i = 0; i < length; i++)
{
for (int j = 1; i < length; j++)
{
if (j <= i || j == length || i == length) continue;
if (word[i] == word[j]) found = true;
}
}
return found;
}
它應該是爲'(INT J = 1;Ĵ<長度; J ++)' – Tyger
下面是一個替代:使256'bool's陣列。將數組初始化爲false。將'word'中的每個字符作爲'unsigned char'逐個檢查,如果字符索引處的'bool'不正確,則將其設置爲true。如果bool是真的,你有一個重複的,可以返回true。如果您在不返回true的情況下將其置於'word'的末尾,則返回false。 – user4581301
使用std :: string。 – 2017-07-18 07:01:32