Wątek przeniesiony 2014-12-29 19:05 z przez ŁF. Powód: Wątek dotyczący podstaw

Wskaźniki - program liczy ilość liter i cyfr

Odpowiedz Nowy wątek
2014-12-29 18:01
Zimny Młot
0

Mam problem z programem, dopiero zaczyna uczyc sie wkaznikow. Program ma w funkcji liczyc ilosc liter i cyfr z tekstu za pomoca wskazników. Co zrobiłem źle ?

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
void zlicz_wystapienia(char *s)
{
      printf("%d",s);
 
      int i,licz,lit,inne;
 
      licz=0;
      lit=0;
      inne=0;
 
      for(i=0;i<strlen(s);i++){
      if(s[i]>='A' && s[i]<='Z' || s[i]>='a' && s[i]<='z'){
                   lit++;}}
      if(lit!=0){
                 printf("ilosc liter %d\n", lit);
                 }
      for(i=0;i<strlen(s);i++){
      if(s[i]>'0' && s[i]<='9'){
                  licz++;}}
      if(licz!=0){      
                  printf("ilosc liczb %d:\n",licz);
                  }
       for(i=0;i<strlen(s);i++){
      if(s[i]>32 && s[i]<=47){
                 inne++;}}
      if(inne!=0){      
                  printf("ilosc innych %d:\n",inne);
                  }
 
} 
 
int main()
{
 
    char tekst[80]="tekst123";
    char *w=&tekst[80];
 
    zlicz_wystapienia(w);
 
} 
Nie używaj prefiksów/postfiksów w tytułach wątków - od podawania nazwy języka/technologii są tagi; - furious programming 2014-12-29 22:02

Pozostało 580 znaków

2014-12-29 18:16
0
  1. Nie użyłeś wskaźników
  2. Zapoznaj się z funkcjami: isdigit(), isalpha()

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2014-12-29 18:47
Zimny Młot
0

Więc jak użyć wskaźników aby było dobrze?

Pozostało 580 znaków

2014-12-29 18:55
0

Użyj wskaźników a będzie dobrze.
Jak to zrobić pisano w byle kursie których mnóstwo znajdziesz w google.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2014-12-29 19:09
Zimny Młot
0

Czytałem juz wiele kursów i nic, przekazac przez wartosc potrafie ale przez wskaznik mam juz problem. Prosze mi pomóc ...

Pozostało 580 znaków

2014-12-29 19:17
0

http://lmgtfy.com/?q=przekazy[...]nt%C3%B3w+przez+wska%C5%BAnik
Albo za 25 zł dostaniesz gotowca.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2014-12-29 19:34
0

Masz mały błąd w funkcji main. Przypisujesz do wskaźnika w &tekst[80], czyli pierwsze miejsce za tablicą tekst. Powinno być samo tekst lub &tekst[0]. Wtedy wskaźnik w będzie wskazywał na początek tekstu.

edytowany 2x, ostatnio: darek40bc, 2014-12-29 19:35

Pozostało 580 znaków

2014-12-29 21:03
Zimny Młot
0

No dzieki, teraz działa, dołownie zmiana kilku literek.

A dragon chciał 25 zł! smiech !

A jeszcze mam jedno pytanie. Zauważyłem że niekiedy w wywołaniu funkcji w nawiasach pisze się &nazwa_wskaznika a czasami bez &

Czym to sie rozni ?

Pozostało 580 znaków

2014-12-29 21:21
0

Nadal nie masz użytych wskaźników. & - to referencja nie z C.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2014-12-29 21:25
Zimny Młot
0

To co musze zrobić żeby, korzystac ze wskaznikow ?

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
void zlicz_wystapienia(char *s)
{
 
      int i,licz,lit,inne;
 
      licz=0;
      lit=0;
      inne=0;
 
      for(i=0;i<strlen(s);i++){
      if(s[i]>='A' && s[i]<='Z' || s[i]>='a' && s[i]<='z'){
                   lit++;}}
      if(lit!=0){
                 printf("ilosc liter %d\n", lit);
                 }
      for(i=0;i<strlen(s);i++){
      if(s[i]>'0' && s[i]<='9'){
                  licz++;}}
      if(licz!=0){      
                  printf("ilosc liczb %d:\n",licz);
                  }
       for(i=0;i<strlen(s);i++){
      if(s[i]>32 && s[i]<=47){
                 inne++;}}
      if(inne!=0){      
                  printf("ilosc innych %d:\n",inne);
                  }
 
} 
 
int main()
{
 
    char tekst[80]="tekst12345";
    char *w=&tekst[0];
 
    zlicz_wystapienia(w);
 
} 

Pozostało 580 znaków

2014-12-29 21:29
0

Na to pytanie już dostałeś odpowiedź: http://4programmers.net/Forum/1096114


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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