Dieser Code zeigt diesen SIGSEGV-Fehler, den ich verstehe, ist ein Segmentierungsfehler. Kann mir bitte jemand helfen! Der Code gibt die Anzahl der einzelnen alphanumerischen Zeichen und Groß- und Kleinbuchstaben zurück, die mehr als einmal in der Eingabezeichenfolge vorkommen. Ich benutze dies auf eine Programmier-Herausforderung, so dass dies nur eine Funktion ist.Prozess vorzeitig beendet mit einem SIGSEGV-Signal
Also, wenn ich "aabcdef" eingeben, sollte es 2 zurückgeben, weil 'a' zweimal auftritt. Die Eingabe kann sowohl Alphabete als auch Zahlen enthalten.
int duplicateCount(const char* in)
{
int a[39]={0},b=0;
for(int i=0;i<strlen(in);i++)
{
if(in == NULL)
return 0;
if((int)in[i] < 97)
{
a[(int)in[i]]++;
}
a[tolower(in[i])-'a'+1]++;
}
for(int i=0;i<39;i++)
{
if(a[i]>1)
b++;
}
return b;
}
was 'a [ 'Z'] ++ verwenden können; 'Outta gebunden? – snr
@snr 'Z' wird in 'z' umgewandelt, also a [26] ++; nicht außerhalb der Grenzen – yaoshinga