porownanie tablic o roznej liczbie argumentow(lancuch znakow), jezyk c

0

Witam was serdecznie. Jestem bardzo poczatkujacy,programowaniem interesuje sie od stycznia br.. Mam taki problem z nastepujacym zadaniem :

"Napisac program, w którym zostanie zadeklarowana tablica 256 elementowa oraz
zostanie ona wypełniona losowymi małymi znakami od a do z. Uytkownik podaje z
klawiatury ciag składajacy sie z 1 do 3 małych znaków. Program powinien umozliwiac
wyszukiwanie podanego ciagu znaków w tablicy, wyswietlajac liczbe wszystkich wystapien."

Konkretnie problem lezy w ostatnim zdaniu. Nie mam pojecia jak ugryzc ten temat. Z gory dziekuje za okazana pomoc. Ponizej zamieszczam kod, ktory do tej pory udalo mi sie napisac:

zadanie_2.cpp

#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#include<string.h>
int main()

{
int i;
   char* a[3];
    srand(time(NULL));
char tab[256];
for(i = 0; i < 256; i++ )

    {tab[i]=(rand()%26)+97;}



      printf("\nElementy tablicy:\n");
for (i=0; i<256; i++)
    {
        printf("%c ",tab[i]);}
        printf("\n\n");

 


    printf("Podaj ciag 3 znakow bez spacji:\n");
      scanf("%s",a);
      printf("to twoja liczba %s",a);







return(0);}
 
2
  1. Nazwa C, tag C#, rozszerzenie pliku cpp? ;)
  2. zliczanie we współpracy z strstr z string.h (http://www.cplusplus.com/reference/cstring/strstr/)
  3. char* a[3]; zły typ i liczba elementów, jeśli ma pomieścić ich 3 (w C stringi są null-terminated).
0

Drogi spartanPAGE to chyba to czego tak namietnie szukalem;) jesli chodzi o ten miszmasz jezykow to chcialem zamiescic w kazdej dostepnej wersji:) Dziekuje Ci serdecznie, bede teraz meczyl sie z tym strstr na swoja reke. BTW czy ten kod ktory zaczalem pisac idzie w dobra strone? Ma szanse spelnic zalozenia zadania?

1

C# z C/C++ ma niewiele wspólnego.
Powinieneś zająć się formatowaniem kodu i zlikwidowaniem magicznych liczb.

2

ok, bede mial na wzgledzie wszytko co napisales. Dziekuje jeszcze raz i spadam do dalszej nauki, bo jeszcze dluga droga mnie czeka:)

0

jakby kogos to zainteresowalo, to tutaj wkleje poprawiony kod. program dziala dobrze, nie wiem czy jest zgodny ze sztuką:). Nie wprowadzilem ograniczenia do scanf, bo program sie nie wysypuje:) enjoy:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
int main()

{
    int a = -1;
    int i;
    char ciag[4];
    char* wynik1;

    srand(time(NULL));
    char tab[256];

    for (i = 0; i < 256; i++)

    {
        tab[i] = (rand() % 26) + 97;
    }

    printf("\nElementy tablicy:\n");
    for (i = 0; i < 256; i++)
    {
        printf("%c ", tab[i]);
    }
    printf("\n\n");

    printf("Podaj ciag 1,2 lub 3 znakow bez spacji:\n");
    scanf("%s", ciag);
    printf("to twoj wybor: %s\n", ciag);

    char* wynik = strstr(tab, ciag);

    do
    {
        a = a + 1;
        wynik = wynik + 1;

        wynik = strstr(wynik, ciag);

    } while (wynik != NULL);
    printf("wyrazenie powtarza sie %d ", a);
    printf("razy.");

    return (0);
}
 

I jeszcze raz dziekuje spartanPAGE.

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