Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

wyszukanie pierwszego wystąpienia podanego znaku

Ostatnio zmodyfikowano 2013-10-13 22:28
Autor Wiadomość
kaczka
Temat założony przez niniejszego użytkownika
wyszukanie pierwszego wystąpienia podanego znaku
» 2013-10-13 20:57:34
Witam!

Utworzyłem tablicę typu char składającą się z 51 elementów (a,b,c,d..a,b,c..itd)
I teraz mam problem z funkcją  która przyjmuje  jako argument daną typu char(literke podana prze uzytkownika) oraz wskaźnik do wcześniej utworzonej tablicy.
 Zadaniem funkcji miałoby być wyszukanie pierwszego wystąpienia podanego znaku w zadanej tablicy i zwrócenie (int) pozycji na której ten  znak( podany przez uzytkownika) wystąpił.

Wyskakuje mi błąd, że nie można porównywać zawartosci wskaźnika i chara.


C/C++
#include <iostream>
#include <string.h>

using namespace std;


int wyszukiwanie( char c_znak, char * wsk[] )
{
   
    cout << "Podales znak: " << c_znak << endl;
   
   
    for( int i = 0; i < 51; i++ )
   
    if( c_znak == wsk ) //tutaj wywala blad :Iso forbids comparison between pointer and integr.
    {
        cout << "trafiles" << endl;
    }
    wsk++; //wskaznik pokazuje na adres kolejnego elementu
}


void wypelnianie( char tekst[] )
{
    int i = 0;
    for( char znak = 'a'; i < 26; i++, znak++ )
    {
        tekst[ i ] = znak;
       
    }
   
   
    int b = 0;
   
    for( char znak = 'a'; b < 26; b++, znak++ )
    {
        tekst[ 26 + b ] = znak;
       
    }
   
   
   
}

int main()
{
   
    char tekst[ 51 ];
    char * wsk;
    wsk = tekst;
   
    wypelnianie( tekst );
    cout << "Podaj znak od a do z" << endl;
    char znak;
    cin >> znak;
    wyszukiwanie( znak, & wsk );
}
P-93635
pekfos
» 2013-10-13 21:02:35
Wyskakuje mi błąd, że nie można porównywać zawartosci wskaźnika i chara.
I nie wiesz, gdzie jest błąd?
P-93636
seprob
» 2013-10-13 22:28:50
C/C++
#include <iostream>

using namespace std;

int search( char literka, char * tab, int rozmiar );

int main() {
    char tab[] = { 'a', 'b', 'c' };
   
    search( 'b', tab,( sizeof( tab ) / sizeof( tab[ 0 ] ) ) );
}

int search( char literka, char * tab, int rozmiar ) {
    for( int i = 0; i < rozmiar; i++, tab++ ) {
        if( * tab == literka ) {
            cout << "Trafiles na pozycji nr " <<( i + 1 ) << "." << endl;
           
            return i;
        }
    }
}
P-93643
« 1 »
  Strona 1 z 1