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

Problemy z tablicą charów

Ostatnio zmodyfikowano 2017-11-26 13:29
Autor Wiadomość
Abigail
Temat założony przez niniejszego użytkownika
Problemy z tablicą charów
» 2017-11-25 20:59:47
Hej, mam za zadanie napisać funkcję przyjmującą dwa argumenty, pierwszy z nich jest typu wskaźnik na tablicę znaków a drugi będzie maksymalną ilością wyrazów, które będą podlegać poniższemu przetworzeniu. Funkcja ma wypisywać litery o parzystym indeksie tablicy z pierwszych x wyrazów ciągu znaków, gdzie x jest tyle ile podajemy w argumencie numer 2. Jeśli x będzie podane więcej niż ciąg ma wyrazów to wówczas przetworzony w ten sposób ma być po prostu cały ten ciąg.
Przykład działania dla ciągu: "Ala ma kota a kot ma Ale"
Jeśli funkcję wywołamy np. z argumentem drugim równym 3 to powinna wypisać:
Aamoa

Stworzyłam coś takiego:
#include "stdafx.h"
#include <iostream>
using namespace std;

C/C++
char tab[ 25 ] = { 'A', 'l', 'a', ' ', 'm', 'a', ' ', 'k', 'o', 't', 'a', ' ', 'a', ' ', 'k', 'o', 't', ' ', 'm', 'a', ' ', 'A', 'l', 'e', '\0' };

int main( int x, char * tab )
{
   
    cin.get( tab, sizeof( tab ) );
   
    scanf_s( "%d", x );
    for( int i = 0; i < sizeof( tab ); i++ )
    {
        int licznik = 0;
        do
        {
           
            if( tab[ i ] - 1 == ' ' )
            {
                licznik++;
            }
           
        } while( licznik < x );
       
        if(( licznik == x ) &&( i % 2 == 0 ) )
             cout << tab[ i ];
       
        getchar();
        return 0;
    }
}


Kompilator nie wyrzuca żadnych błędów, ale w konsoli nic nie wyświetla się po podaniu x. Co tu jest źle?
P-167185
nanoant20
» 2017-11-25 22:26:40
na pewno masz to robić funckją main()?, a nie czasami zdefiniować własną funkcję?
ten kod to taki miszmasz
C/C++
int main( int x, char * tab ) //zostaw main w spokoju
{
    cin.get( tab, sizeof( tab ) ); //C++
    scanf_s( "%d", x ); //Ansi C

http://cpp0x.pl/kursy/Kurs-C++​/Poziom-2​/Funkcje-pierwsze-starcie/291


P-167188
pekfos
» 2017-11-26 13:29:28
C/C++
int main( int x, char * tab )
{
   
    cin.get( tab, sizeof( tab ) ); // zły rozmiar (sizeof daje rozmiar wskaźnika, nie tablicy)
   
    scanf_s( "%d", x ); // Błędne użycie, scanf przyjmuje adres zmiennej, nie zmienną
To nie jest też poprawna definicja main. Potem też pełno błędów. Warunek bez sensu, potencjalnie nieskończona pętla, return w złym miejscu, itd..
P-167198
« 1 »
  Strona 1 z 1