Udało mi się napisać taki kod, który zlicza ile razy występuje w stringu dany znak.
#include "stdafx.h"
#include "string.h"
#include "ctype.h"
int count_nonspace(const char* str)
{
int count = 0;
while (*str)
{
if (!isspace(*str++))
count++;
}
return count;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[256];
int i = 0, j = 0, count[127] = { 0 };
char string[100] = "Hello world";
for (i = 0; i < 100; i++)
{
for (j = 0; j<127; j++)
{
if (tolower(string[i]) == (j))
{
count[j]++;
}
}
}
for (j = 0; j<127; j++)
{
printf("\n%c -> %d \n", j, count[j]);
}
}
Niestety zlicza wszystkie znaki od "j" w górę (dziwne, bo wszystkie zmienne zaczynają się od zera), co widać na załączonym obrazku:
Chciałbym to zmodyfikować tak,żeby zliczał znaki które występują pod rząd (tzn. liczył ile dany znak występuje jeden za drugim) i prinf zrobić dla znaku który występuje największą liczbe razy pod rząd, co więc powinienem zmienić w tym programie w tym celu, bo jestem kompletnie zagubiony.
dodanie obrazka do treści posta
- @furious programming