C, wyszukiwanie litery "a" w tablicy.

0

Witam,
mam za zadanie do wykonania program który będzie wczytywał wpisane przez użytkownika zdanie do tablicy, a później wyszukiwał w tym zdaniu małej litery "a". I podawał ile razy wystąpiła ona w tym wpisanym zdaniu. Zdanie musi zostać przszukane z użyciem pętli do-while.
Proszę o jakąkolwiek pomoc.

 
#include <stdio.h>
char tab[1000];
static int b=0;
int i=0;
void tekst(void)
{
	printf("Wpisz dowolny tekst:");
	scanf("%s",&tab);
	
}
int znak()
{
	
	
	do
	{
	
		if(tab[i]==97) b=b+1;
		else b=b=0;	
		if (tab==10) break;
		++i;
	}while (tab>0);
	
	
}
int main()
{
	
	tekst();
	znak();
	printf("Liczba wystapien malej litery a:%d",b);
	getch ();
}

Napisałem coś takiego, ale nie działa.

Pozdrawiam

1
#include <stdio.h>

char tab[1000];
int b=0;
int i=0;
void tekst(void)
{
    printf("Wpisz dowolny tekst:");
    scanf("%s",&tab);
 
}
void znak()
{
 
 
    do
    {
 
       if(tab[i] == 'a') b++;
        ++i;
    }while (tab[i] != '\0');
 
 
}
int main()
{
 
    tekst();
    znak();
    printf("Liczba wystapien malej litery a:%d",b);
}

Zrób sobie porównanie z swoim programem i napisz czego nie rozumiesz.

0

Poza tym, tab jest już wskaźnikiem na pierwszy element tablicy, więc nie potrzeba &:

scanf("%s",tab);
0

Bardzo dziękuję za odpowiedź!
Czy trzeba faktycznie użyć b++ czy można użyć b=b+1? Nie rozumiałem za bardzo w jakis sposób program bedzie pamietał liczbe pojawiajacych się "a".
I czy rownież skorzystanie z ASCII przy 'a'=97 było nieprawidłowe? Ah i czy '\0' w wyrażeniu pętli oznacza ENTER?
Jeszcze raz bardzo dziekuję za pomoc.

1
walterrobotics napisał(a):

Bardzo dziękuję za odpowiedź!
Czy trzeba faktycznie użyć b++ czy można użyć b=b+1? Nie rozumiałem za bardzo w jakis sposób program bedzie pamietał liczbe pojawiajacych się "a".
I czy rownież skorzystanie z ASCII przy 'a'=97 było nieprawidłowe? Ah i czy '\0' w wyrażeniu pętli oznacza ENTER?
Jeszcze raz bardzo dziekuję za pomoc.

1.b++ to to samo co b=b+1.
2.Program zapamięta liczbe literek 'a' poprzez własnie b++. Gdy warunek zostanie spełniony zwiększy licznik o 1.
3. Korzystanie z kodu ASCII jest dozwolone ale mało przejrzyste w kodzie. Jezli zaś używamy znaku to widzimy dokładnie o co nam chodziło bez uczenia sie tablicy ASCII na pamiec.
4. Znak '\0' oznacza koniec linni. ten link powinien Ci wiele wyjaśnić: http://cpp0x.pl/kursy/Kurs-C++/Ciagi-znakow-lancuchy/299

0

Dziękuję Ci! Bardzo mi pomogłeś:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1