Witam, napisałem program, który ma funkcję przeglądającą łańcuch w poszukiwaniu podanego znaku. Funkcja posiada dwa parametry pierwszy
typu wskaźnik do char, drugi typu char i zwraca ilość wystąpień tego znaku w łańcuchu. Jeżeli znak nie wystąpi
wypisać odpowiedni komunikat.
Coś jest nie tak bo zamiast zwracać liczbę ilości wystąpienia znaku to zwraca jakieś buźki uśmiechnięte albo serduszka. Co skopałem?
I jak sprawdzić, czy dany znak wystąpił w łańcuchu?
PS. WIEM, ŻE NAZWY FUNKCJI I ZMIENNYCH POWINNY BYĆ PO ANGIELSKU.
#include <iostream>
#include <cstdlib>
#include <string>
#include <stdio.h>
int dlugosc(char lancuch[])
{
int index;
for (index = 0; lancuch[index] != '\0'; ++index);
return index;
}
char szukajZnaku(char* wsk, char ilosc)
{
char znak;
std::cout << "\nPodaj znak: ";
std::cin >> znak;
ilosc = 0;
for (int i = 0; i < strlen(wsk); i++)
{
if (wsk[i] == znak)
{
ilosc++;
}
}
return ilosc;
}
int main()
{
char line[100];
while (1)
{
std::cout << "Podaj lancuch: ";
if (fgets(line, sizeof(line), stdin))
{
char* p = strchr(line, '\n');
if (p) *p = 0;
}
std::cout << "Dlugosc wynosi: " << dlugosc(line) << " ";
break;
}
char ile = 0;
std::cout << szukajZnaku(line, ile);
std::cin.ignore();
std::cin.get();
return 0;
}