Ich versuche, Arrays zu initialisieren, indem Sie sie als Zeiger an eine Initialisierungsfunktion übergeben. Mein Programm kompiliert ohne Fehler, aber wenn ich es ausführe; es druckt Zeichenzählung aus und stoppt. DieseArray-Initialisierungsfunktion: Übergabe von Array als Zeiger: C++
ist das, was ich bisher:
#include<iostream>
#include<cctype>
#include<string>
#include<iomanip>
using namespace std;
void initialize(int *array, int n, int value);
int main()
{
char ch;
int punctuation, whitespace, digit[10], alpha[26];
punctuation = 0, whitespace = 0;
initialize(digit, sizeof(digit)/sizeof(int), 0);
initialize(alpha, sizeof(alpha)/sizeof(int), 0);
while(cin.get(ch))
{
if(ispunct(ch))
++punctuation;
else if(isspace(ch))
++whitespace;
else if(isdigit(ch))
++digit[ch - '0'];
else if(isalpha(ch))
{
ch = toupper(ch);
++alpha[ch - 'A'];
}
if(whitespace > 0)
{
cout << "Whitespace = " << whitespace << endl;
}
if(punctuation > 0)
{
cout << "Punctuation = " << punctuation << endl;
}
cout << setfill('-') << setw(17) << '-' << setfill(' ') << endl;
cout << " Character " << " Count " << endl;
cout << setfill('-') << setw(17) << '-' << setfill(' ') << endl;
return 0;
}
}
void initialize(int *array, int n, int value)
{
int i;
for (i = 0; i < n; ++i)
{
value += array[i];
}
}
Ich bin nicht sicher, dass ich etwas falsch hier tue. Obwohl ich bin ein wenig verwirrt darüber, wie Zeiger funktionieren, nachdem sie an eine andere Funktion übergeben wurden. Kann jemand das erklären?
Danke
In der Initialisierungsfunktion, drucken Sie den Wert von n. – MikeC
"Stoppt"? Hängt? Stürzt ab? Nur Ausgänge? – hyde
Es druckt Character Count und dann – Ambrus