• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

łancuchy znaków ile razy znak z klawiatury występuje w łańcuchu-Problem

0 głosów
695 wizyt
pytanie zadane 14 stycznia 2018 w C i C++ przez mn130496 Gaduła (3,640 p.)

Witam 

Jestem Studentem pierwszego roku informatyki. związku z tym , że zbliża się koniec semestru i egzaminy postanowiłem w ramach nauki do nich raz jeszcze przerobićzadania, które robiliśmy na laboratoriach.

Mam takie zadanie: Napisac funkcje, ktora sprawdzi ile razy w lancuchu podanym z klawiatury
wystepuje podany z klawiatury znak.Napisałem taką funkcję:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void ile_w_lancuchu(char ciag,int znak)
{

    char ciag[150],*ptr;
    int suma=0;
    printf("Podaj lancuch: ");
    gets(ciag);
    printf("Podaj znak:");
    scanf("%c", &znak);
    ptr=strchr(ciag, znak);
    ptr=ciag;
    while(ptr !=NULL)
    {
        ptr=strchr(ptr,znak);
        if(ptr)
        {
            printf("Znak %c znajduje sie na pozycji: %d\n\n",znak,ptr-ciag);
            ptr++;
            suma=suma+1;
        }
    }
    printf("znak %c znajduje sie: %d razy w lancuchu %s\n\n",znak,suma,ciag);
    system("pause");
}

int main(void)
{
    char ciag[150];
    int wynik;
    printf("podaj ³ancuch");
    gets(ciag);
    printf("podaj znak");
    scanf("%c",&znak);
    wynik=ile_w_lancuchu(ciag,znak);

    return (0);
}

Problem polega na tym ,że program nie chce się kompilować nie wiem dlaczego.Czy ktoś może mi pomóc znaleźć poprawić ten kod?.z góry dziękuję.  

1 odpowiedź

+1 głos
odpowiedź 14 stycznia 2018 przez tangarr Mędrzec (155,140 p.)

Tutaj masz output z clanga:
 

zadanie.c:8:10: error: redefinition of 'ciag' with a different type: 'char [150]' vs 'char'
    char ciag[150],*ptr;
         ^
zadanie.c:5:26: note: previous definition is here
void ile_w_lancuchu(char ciag,int znak)
                         ^
zadanie.c:11:10: warning: incompatible integer to pointer conversion passing 'char' to parameter of type 'char *'; take the address with & [-Wint-conversion]
    gets(ciag);
         ^~~~
         &
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/stdio.h:257:18: note: passing argument to parameter here
char    *gets(char *);
                    ^
zadanie.c:13:17: warning: format specifies type 'char *' but the argument has type 'int *' [-Wformat]
    scanf("%c", &znak);
           ~~   ^~~~~
           %d
zadanie.c:14:16: warning: incompatible integer to pointer conversion passing 'char' to parameter of type 'const char *'; take the address with & [-Wint-conversion]
    ptr=strchr(ciag, znak);
               ^~~~
               &
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/string.h:76:26: note: passing argument to parameter '__s' here
char    *strchr(const char *__s, int __c);
                            ^
zadanie.c:15:8: warning: incompatible integer to pointer conversion assigning to 'char *' from 'char'; take the address with & [-Wint-conversion]
    ptr=ciag;
       ^~~~~
        &
zadanie.c:21:67: warning: format specifies type 'int' but the argument has type 'char *' [-Wformat]
            printf("Znak %c znajduje sie na pozycji: %d\n\n",znak,ptr-ciag);
                                                     ~~           ^~~~~~~~
                                                     %s
zadanie.c:26:72: warning: format specifies type 'char *' but the argument has type 'char' [-Wformat]
    printf("znak %c znajduje sie: %d razy w lancuchu %s\n\n",znak,suma,ciag);
                                                     ~~                ^~~~
                                                     %c
zadanie.c:37:17: error: use of undeclared identifier 'znak'
    scanf("%c",&znak);
                ^
zadanie.c:38:31: error: use of undeclared identifier 'znak'
    wynik=ile_w_lancuchu(ciag,znak);

Pamiętaj! Kompilator jest twoim przyjacielem. Każdy warning i error ma znaczenie.

Podobne pytania

0 głosów
1 odpowiedź 4,259 wizyt
pytanie zadane 25 czerwca 2018 w C i C++ przez Białozór Użytkownik (750 p.)
0 głosów
0 odpowiedzi 974 wizyt
0 głosów
0 odpowiedzi 265 wizyt
pytanie zadane 14 lutego 2018 w Matematyka, fizyka, logika przez heron Nowicjusz (120 p.)

93,731 zapytań

142,668 odpowiedzi

323,286 komentarzy

63,289 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...