| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 02.06.13 Prihlásený: 07.06.16 Príspevky: 63 Témy: 18 |
S pointermi velmi neviem pracovat, Chcem aby nacitalo Male , velke pismena a potom zistilo kolko je malych kolko je velkych. Poprosil by som o pomoc. Kód: #include <stdio.h> #include <string.h>
int main () { int dlzka_male,dlzka_velke; char c[10]; scanf("%s",c); if ( c >='A' || c <= 'Z' || c >= 'a' || c <= 'z') { if(c >= 'a' || c <= 'z') { dlzka_male = strlen(c); } else { dlzka_velke = strlen(c); } }
printf("%d %d\n",dlzka_male,dlzka_velke); return 0; } Kód: strlen.c: In function ‘main’: strlen.c:10:9: warning: comparison between pointer and integer [enabled by default] if ( c >='A' || c <= 'Z' || c >= 'a' || c <= 'z') ^
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 09.10.2014 10:53 | |
|
Pointery tam ani nie sú. Ide o pole znakov (string), takže si pozri prácu s nimi. Na Pointery kašli, ta chyba síce hovorí správne, ale ty tam zle používáš pole.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 24.08.12 Prihlásený: 09.02.19 Príspevky: 59 Témy: 0 | Napísal faraon: 09.10.2014 18:46 | |
|
Pointer tam vlastně jeden je, a to ten název pole znaků c. Když si ho necháš vypsat jako int, dozvíš se v jakém místě paměti je tvůj řetězec uložený ;-) Ale pokud chceš spočítat kolik malých a velkých písmen v tom načteném textu máš, musíš ho prostě cyklem projít písmenko po písmenku a každé z nich otestovat zvlášť: Kód: #include <stdio.h>
#define jemale(c) c>='a' && c<='z' #define jevelke(c) c>='A' && c<='Z'
int main(void) { int i,male,velke; char text[1000];
printf("Zadej text: "); scanf("%s",text);
for (i=male=velke=0;text[i];++i) { if (jemale(text[i])) ++male; else if (jevelke(text[i])) ++velke; }
printf("Malých: %d\nVelkých: %d\n",male,velke);
return 0; }
Funguje to pouze pro znaky bez diakritiky, s nimi by to bylo o dost složitější. A to pole je lepší udělat s dostatečnou rezervou, protože Céčko nikdy nekontroluje meze, a do toho tvého desetibytového by se vešlo jenom devět písmen, což není problém překročit a nechtěně přepsat v paměti něco hodně důležitého! Jestli ti to ještě není jasné, vlož si před return tohle a uvidíš co se stane: Kód: i=0; while (putchar(text[i++])) putchar('\n');
_________________ "Existuje pouze jeden člověk, který má méně přátel než Bill Gates, a tím je Saddám Husajn." (Paul Grayson) |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 09.10.2014 20:12 | |
|
Ale k pochopeniu polí, nech sú to aj stringy, absolútne nepotrebuješ pointery. Takže tu by som ich pre jednoduchosť vôbec netrepal a zameral sa na pole. Píšem to len preto, že hneď v úvode je veta dany2281995 píše: S pointermi velmi neviem pracovat, To ani nemusíš, ak ide o takéto (statické) polia. Pochop najprv pole ako také, na pointery je času dosť.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 15.01.07 Prihlásený: 23.09.15 Príspevky: 186 Témy: 3 Bydlisko: ZV/BA | Napísal matwej: 09.10.2014 22:10 | |
|
a ked uz pointery, tak potom dynamicke polia a to co pisal faraon sa da poriesit tym, ze si ho budes resizovat cez realloc ... ale najprv pochop polia, potom len samotne pointery (co je zaklad Ccka poriadneho) a potom dynamicke polia a struktury
_________________ nb: Lenovo Thinkpad E520 (starsi pan uz), Fedora 20 / Win7 dualboot " 1000.times { puts "I will not spam on the boards" } " |
|
Registrovaný: 02.06.13 Prihlásený: 07.06.16 Príspevky: 63 Témy: 18 |
Vyriesil som to cez getchar(); Mozete zmazat alebo uzamknut
|
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| [C] Citanie integeru v cykle v Assembler, C, C++, Pascal, Java | 14 | 501 | 15.11.2014 18:28 BX | | C++ porovnanie knih v Assembler, C, C++, Pascal, Java | 3 | 420 | 06.08.2012 12:54 fista1 | | Porovnanie poli v C++ v Assembler, C, C++, Pascal, Java | 4 | 459 | 04.09.2020 9:04 Jur_3 | | Porovnanie stlpcov matice v C++ v Assembler, C, C++, Pascal, Java | 3 | 415 | 21.03.2015 12:18 focko | | [C]funkcie, nacitanie a porovnanie zo suboru v Assembler, C, C++, Pascal, Java | 6 | 1299 | 31.03.2015 17:47 dany2281995 | | if (strlen v PHP, ASP | 2 | 772 | 03.09.2009 16:18 shaggy | | pretypovanie pointeru na void v Assembler, C, C++, Pascal, Java | 1 | 630 | 03.10.2009 18:07 plna.hlava | | Mám sa učiť C ++/objective C/ C#? v Assembler, C, C++, Pascal, Java | 5 | 730 | 08.07.2014 20:40 XOLOO | | rozdiel medzi Borland 3.1 C++ vs Net. C++ v Assembler, C, C++, Pascal, Java | 4 | 575 | 20.07.2010 12:54 walther | | K: PC Literaturu- C++/C#/java/python/ruby/RoR v Kúpim | 0 | 410 | 13.05.2014 18:16 expresado | | Hledá se programátor C/C++ pro vesmírné projekty (Praha) v Ponuka práce | 0 | 1123 | 10.05.2016 14:59 evolvsys | | Naučte se C++ za 21 dní + C++Builder 6 v Assembler, C, C++, Pascal, Java | 18 | 2413 | 21.05.2010 21:08 Wpegb | | Hladam hracov na C&C Generals Zero Hour v Počítačové hry | 10 | 1250 | 07.03.2007 19:22 Spirit | | Čo mi treba na programovanie v C/C++ v Assembler, C, C++, Pascal, Java | 17 | 1146 | 25.09.2011 18:14 reDo | | aky je rozdiel medzi C++ a Visual C++ ? v Assembler, C, C++, Pascal, Java | 8 | 1964 | 19.02.2011 22:46 vendo2 | | Hladame 3x C/C++ Linux developer- projekt 11/2016-2/2017 v Ponuka práce | 1 | 552 | 24.10.2016 15:28 michalesku |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|