Zdravím, potřeboval bych pomoct..
mám v Cčku int main(int argc, char *argv[]), pomocí kterého načítám parametry, s kterými potřebuju dál pracovat.
Ale když se je pokusím přiřadit jako parametr další funkce a zavolat ji, např. encode(argv[2]); /nebo i jiné obměny/, tak mi to háže chybu :/ ..
Je nějakej způsob, jak bych je mohl přiřadit a dál s tím pracovat v jiné funkci? :/
Fórum › C / C++
Práce s parametry
Dobry, tak tohle sem vyřešil .. ted bych potřeboval nějak ověřit, jestli ten parametr argv[2] obsahuje jenom znaky A-Z a číslice 0-9 a asi ho budu potřebovat rozsekat na jednotlivý písmenka, abych s nimi mohl pracovat.. takže abych třeba ze slova AHOJ měl A, H, O,J .. nevíte někdo, jak na to? :/
To Koja : pokud si uvedomis, ze retezec je pole znaku (char), tak pak neni nic jednodussiho, nez cele pole projit v cyklu a jednotlive znaky otestovat...
char my_string[] = "AHOJ";
printf("%c\n", my_string[1]); //vypise pismeno H
EDIT: pro overeni, zda je znak velke pismeno, muzes pouzit fci isupper() viz http://www.cplusplus.com/reference/clibrary/cctype/isupper.html
Když už se teda ptám, tak když mám
int main (void) {
char a[] = "dum", b[] = "domecek";
int x = 4;
strncat(a, b, x);
printf("%s\n", a);
}
tak to funguje v pohodě, ale když napíšu
int main (void) {
char *a = "dum", *b = "domecek";
int x = 4;
strncat(a, b, x);
printf("%s\n", a);
}
tak mi to hází chybu:/
Dá se to udělat, aby mi to fungovalo i pro char *a = "dum", *b = "domecek"; ?
Resp. můžu nějak převést *proměnná na proměnná[] ?
To Koja : uz jen zapisem dalsich 5B do retezce a kterej je pripravenej jen na 4B vcetne ukoncovaciho znaku delas velkej kopanec.....
a u tech ukazatelu uz je to fatalni protoze hmatas nekam kam ti system uz nedovoli
EDIT: napadl me primer: mam garaz "a" pro auto s autem A, mam jeste garaz pro nakladak s nakladakem B
jak nacpat nakladak do garaze "a" ikdyz je tam auto A a neni tam ani trochu mista na nakladak B?
zkus se zamyslet...
Dobry, pochopil sem.
A dá se teda *a převést na a[] ??
Zkoušel sem to pomocí for a pole[i] = argv[1][i], ale vypadá to asi takhle
pes
pes�hf��▒
prostě to tam nechává nějaký náhodny klikyháky vždycky :/ Zkoušel sem to omezim pomocí if (c >= 'a' && c <= 'z'), ale nepomohlo to, nevím proč :/
nechapu o co se snazis....
kazdopadne kdyz chces prochazet retezec musis pocitat ze retezec ma nejake zakonceni... v C je to '\0' tj. znak s ascii hodnotou 0
pokud prochazis tak musis testovat prvne to...
pak je jednodussi pouzit na to testovani knihovnu ctype.h
ta obsahuje tydle funkce:
isalnum test for alphanumeric character
isalpha test for alphabetic character
isblank test for blank character (new in C99)
iscntrl test for control character
isdigit test for digit. Not locale-specific.
isgraph test for graphic character, excluding the space character.
islower test for lowercase character
isprint test for printable character, including the space character.
ispunct test for punctuation character
isspace test for space character
isupper test for uppercase character
isxdigit test for hexadecimal digit. Not locale-specific.
jen si vyberes kterejma to ma projit
char * a, *b;
a = malloc(200*sizeof(char)); // zabereme pamet pro a
b = malloc(200*sizeof(char)); // zabereme pamet pro b
strcpy(a,"dum"); // nakopirovat do a "dum"
strcpy(b,"domecek"); // nakopirovat do b "domecek"
int x = 4;
strncat(a, b, x);
printf("%s, %s\n", a,b);
free(a); // uvolnit pamet po a
free(b); // uvolnit pamet po b
pripadne nekdy staci: (char *) a
ale pokud tam neni misto na dalsi znaky a chces do toho neco jeste nacpat tak je to nanic
To by sice fungovalo, jenže já to přebírám jako argument ve funkci. Asi takhle .. přes *argv[] se to načte do main .. já to jako *promenna převezmu v jiný funkci pomoci funkce(argv[2]); a tam s tím dál pracuju.
Takže tam asi nemůžu napsat potom promenna = malloc(200*sizeof(char));, protože to nefunguje :/
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Menu , prace s textovymi soubory - závěrečná práce , nevim si rady :( — založil honzajs
Práce v Irsku - Práce v IT a jiných oborech — založil MakeITinIreland
Metody, parametry — založil Zbiro
Moderátoři diskuze