Я привык к java и борюсь с основным синтаксисом C++, несмотря на знание теории. У меня есть функция, которая пытается подсчитать количество вхождений в строке, но выход является битом табуляции.Подсчет количества вхождений в строку C++?
Вот мой код:
#include <cstdlib>
#include <iostream>
#include <cstring>
/*
main
* Start
* prompt user to enter string
* call function
* stop
*
* count
* start
* loop chars
* count charts
* print result
* stop
*/
using namespace std;
void count(const char s[], int counts[]);
int main(int argc, char** argv) {
int counts[26];
char s[80];
//Enter a string of characters
cout << "Enter a string: "; // i.e. any phrase
cin.getline(s,80);
cout << "You entered " << s << endl;
count(s,counts);
//display the results
for (int i = 0; i < 26; i++)
if (counts[i] > 0)
cout << (char)(i + 'a') << ": " << counts[i] << "Times " << endl;
return 0;
}
void count(const char s[], int counts[]){
for (int i = 0; i < strlen(s); i++)
{
char c = tolower(s[i]);
if (isalpha(c))
counts[c - 'a']++;
}
}
Вот результат:
Введите строку: Дилан
Вы вошли Дилан
B: 1Times
с: 1Тремы
д: 2times
F: 1Times
ч: 1Times
я: 1229148993Times
J: 73Times
л: 2times
н: 2times
p: 1Times
г: 1Times
v: 1Times
Любая помощь вы можете дать мне было бы весьма признателен. Несмотря на то, что это простой материал, я присоска. -_-
'ИНТ рассчитывает [26] = {0};' ' – IInspectable
Initialize counts'. В настоящее время вы не знаете, что сидит в памяти, и, как правило, C++ не инициализирует хранилище для вас, полагая, что если вам будет интересно, что это за значение, вы установите его. 'int count [26] = {0};' – user4581301
int map [121]; вы можете сделать это таким образом. если вы алфавит - это все 7-битные символы –