Portál AbcLinuxu, 9. května 2025 20:59
int mystrlen(char *string) { int i = 0; while (string[i] != '\0') i++; return i; }
#include <stdio.h> #define mystrlen(str,a) while(str[a]!='\0') a++; int main(){ char str[10]; scanf("%s", str); int i = 0; mystrlen(str,i); printf("%d\n", i); return 0; }
i+1
'.
tvoje vysvetlenie nie je scestne, no treba brat do uvahy aj pripad, kedy by clovek pytajuci sa na otazku v roznych forach po zisteni spavneho riesenia napisal na vsetky fora, na ktorych sa pytal .. tym padom vlastne nezneuziva fora .. daju sa najst (aj tu na abclinuxu) prispevky, kde sa clovek pyta a sam si aj odpoveda .. ci uz nasiel tu odpoved sam, alebo mu pomohli na inych forach, to uz nezalezi .. ide o to, aby sme si pomahali..To ale stále ještě neřeší ten problém, že se tím jeho dotazem budou lidi pravděpodobně zabývat i přesto, že nějká část už je někde vyřešená. Pochybuju o tom, že by dotyčný tazatel promptně každou odpověď z jednoho fóra kopíroval na druhé.
Když už jsme u toho, jak měla pomoci tazateli *vaše* reakce?Je zrejme, ze s tymto problemom patrne nijako. Dolezite je, ze cele toto vlakno bolo zalozene niekym, koho sice obtazuje citat tu istu otazku v dvoch forach, ale uz ho neobtazuje pisat prispevok, v ktorom fnuka nad tymto svojim osobnym problemom, ktory si sposobil len on sam. Takze ano, moje prispevky v tomto vlakne su rovnako neuzitocne ako tie Tvoje. Rozdiel je ten, ze ten Tvoj prispevok bol pricinou, tie moje a vsetkych dalsich su dosledkom.
#define MYSTRLEN(s) strlen(s)Škoda že nejdou udělat rekurzivní makra, hned bych pro tebe měl jednu akademicky ukázkovou udpověď. btw, v původní funkci:
const char *string
by bylo lepší; také by místo while
šlo použít for
, možná by to bylo přehlednější, ale je to věc názoru.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.