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

C - string problem

Object Storage Arubacloud
0 głosów
325 wizyt
pytanie zadane 22 grudnia 2016 w C i C++ przez niezalogowany

Nie wiem czy dokładnie tak mam nazwać ten problem natomiast spotykam się z nim którychś raz i nie mogę wszystkich problematycznych programów nie pisać w C tylko w C++ bo nie umiem sobie poradzić...

Mianowicie chodzi o zadania ze stringami. Jak zadeklarować tablicę stringów w C? Chodzi o zadeklarowanie tablicy n stringów o maksymalnej długości 20 (ergo tworzymy macierz char(n) x char(21) ) - jak to zrobić?

Do tego czy jest jakichś magiczny sposób by posługiwać się tym wspaniałym tworem jak wskaźnikiem na stringi, czy muszę traktować to jako macierz char'ow...?

Zadanie, które miałem wykonać z odpowiedzią w C++: link

Pytam, ponieważ napisałem coś wydaje mi się podobnego (przynajmniej w założeniu), lecz totalnie nie chce działać... Załączam pod spodem kod

#include<stdio.h>
#include<string.h>

#define nickSize 21

int main()
{
    char **tab;
    char seekFor[nickSize];
    int i,n,count;
    count=0;

    scanf("%d",&n);
    tab=(char**)calloc(n,sizeof(char*));
    for( i=0;i<n;i++ )
    {
        tab[i]=(char*)calloc(nickSize,sizeof(char));
    }

    for( i=0;i<n;i++ )
    {
        scanf("%s",tab[i]);
    }
    scanf("%s",seekFor);
    for( i=0;i<n;i++ )
    {
        if(tab[i]==seekFor)
        {
            count++;
        }
    }
    printf("%d",count);

    for( i=0;i<n;i++ )
    {
        free(tab[i]);
    }
    free(tab);
    return 0;
}

2 odpowiedzi

0 głosów
odpowiedź 22 grudnia 2016 przez mrcnsct Nałogowiec (36,390 p.)
wybrane 24 grudnia 2016
 
Najlepsza

stdlib.h jest potrzebne do calloc i free.

Źle porównujesz napisy: https://pl.wikibooks.org/wiki/C/strcmp

Rzutowanie jest niepotrzebne: https://pl.wikibooks.org/wiki/C/malloc#Uwagi

komentarz 24 grudnia 2016 przez niezalogowany
To porównywanie napisów okazało się kluczowe :) Dziękuję za wskazówki
0 głosów
odpowiedź 22 grudnia 2016 przez NaviFox Dyskutant (8,950 p.)
Czytasz czasami wiadomości o błędach wysyłane przez kompilator?

#include <stdlib.h>
komentarz 22 grudnia 2016 przez niezalogowany
Program się kompiluje -> nie użyłem żadnych funkcji których użyć nie mogłem.

Rozumiem że dzięki dołączeniu kolejnej biblioteki proponujesz alternatywne rozwiązanie. Słucham zatem Twojej propozycji :)

Podobne pytania

0 głosów
4 odpowiedzi 2,419 wizyt
0 głosów
1 odpowiedź 500 wizyt
pytanie zadane 8 listopada 2019 w C i C++ przez Gildin1_2 Gaduła (3,060 p.)
0 głosów
1 odpowiedź 394 wizyt
pytanie zadane 14 sierpnia 2019 w C i C++ przez niezalogowany

92,555 zapytań

141,403 odpowiedzi

319,556 komentarzy

61,940 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...