Forum » Programiranje » c++ char ime[10];
c++ char ime[10];
fogl ::
Zakaj mi javi napako, če napišem:
char ime[10];
ime="klemen";
če napišem:
char ime[10]="klemen";
je pa vse ok.
Kako predpišem vrednost za ime, razen z
ime[1]='k';
ime[2]='l';
....
?
char ime[10];
ime="klemen";
če napišem:
char ime[10]="klemen";
je pa vse ok.
Kako predpišem vrednost za ime, razen z
ime[1]='k';
ime[2]='l';
....
?
lp, klemen
fx ::
Fogl a ti sploh veš kaj osnov ?.
Javi ti napako zato ker ime nimaš deklarirano, kar v drugem primeru je.
lp
"Naj živi UNIN"
Javi ti napako zato ker ime nimaš deklarirano, kar v drugem primeru je.
lp
"Naj živi UNIN"
Zgodovina sprememb…
- spremenil: fx ()
fogl ::
char ime[10]; //a to ni deklaracija?
ime="klemen"; //tukaj ga hočem inicializirati
ime="klemen"; //tukaj ga hočem inicializirati
lp, klemen
Brilko ::
Senitela posluši. Stringom ne moreš kar tako prirejati vrednosti, razen pri inicializaciji, kjer definiriraš spremenljivko char. Zato moraš uporabiti npr strcat.
fogl ::
OK, sem dojel...hvala!
Takole gre:
Takole gre:
#include <iostream.h> #include <string.h> int main() { char ime[10]; strcpy (ime, "klemen"); cout<<ime<<endl; return 1; }
lp, klemen
OwcA ::
Tri stvari:
1) ali razumeš čemu tako
2) to kar ti pišeš ni C++
3) čemu raje ne uporabiš std::string
1) ali razumeš čemu tako
2) to kar ti pišeš ni C++
3) čemu raje ne uporabiš std::string
Otroška radovednost - gonilo napredka.
BigWhale ::
strcpy/cat se ne bi smel NIKOLI uporabljat...
strncpy()
strncat()
NE poslusat sentinela... Vsaj ne 100% ;)
strncpy()
strncat()
NE poslusat sentinela... Vsaj ne 100% ;)
Zgodovina sprememb…
- spremenil: BigWhale ()
fogl ::
OwcA,
ne rezumem čemu tako, ampak tako nekak piše v helpu (msdn)...čemu potem?
zakj pa to ni c++ ?
kako pa naj uporabim std::string ?
BigWhale...zakaj pa se nebi smel uporabljat, sej funkcionira.
ne rezumem čemu tako, ampak tako nekak piše v helpu (msdn)...čemu potem?
zakj pa to ni c++ ?
kako pa naj uporabim std::string ?
BigWhale...zakaj pa se nebi smel uporabljat, sej funkcionira.
lp, klemen
jype ::
Je ze BigWhale povedu, ko sem hotu ravno v luft skocit.
Zakaj ne uporabljat strcpy, strcat in podobnih funkcij brez n:
// program, ki izpise ime, ki ga dobi kot prvi parameter:
char ime[10]; // tole alocira 10 bajtov
int main(int argc, char **argv) {
strcpy(ime, argv[1]);
printf("ime: %s\n", ime);
return 0;
}
primer, kako tak program vsujemo:
marvin:~ jure$ gdb ./test
GNU gdb 5.3-20030128 (Apple version gdb-309) (Thu Dec 4 15:41:30 GMT 2003)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "powerpc-apple-darwin".
Reading symbols for shared libraries .. done
(gdb) run beeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Starting program: /Users/jure/test beeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Reading symbols for shared libraries . done
Program received signal EXC_BAD_ACCESS, Could not access memory.
0x90007680 in strcpy ()
(gdb) bt
#0 0x90007680 in strcpy ()
#1 0x00001eec in main ()
#2 0x00001be0 in _start (argc=2, argv=0xbfffe624, envp=0xbfffe630) at /SourceCache/Csu/Csu-46/crt.c:267
#3 0x00001a54 in start ()
(gdb)
Ugotovitev, zakaj se program sesuje prepuscam bralcu v vajo.
Pa ko je to ravno C++, zakaj ne uporabljas std::string, fogl?
Zakaj ne uporabljat strcpy, strcat in podobnih funkcij brez n:
// program, ki izpise ime, ki ga dobi kot prvi parameter:
char ime[10]; // tole alocira 10 bajtov
int main(int argc, char **argv) {
strcpy(ime, argv[1]);
printf("ime: %s\n", ime);
return 0;
}
primer, kako tak program vsujemo:
marvin:~ jure$ gdb ./test
GNU gdb 5.3-20030128 (Apple version gdb-309) (Thu Dec 4 15:41:30 GMT 2003)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "powerpc-apple-darwin".
Reading symbols for shared libraries .. done
(gdb) run beeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Starting program: /Users/jure/test beeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Reading symbols for shared libraries . done
Program received signal EXC_BAD_ACCESS, Could not access memory.
0x90007680 in strcpy ()
(gdb) bt
#0 0x90007680 in strcpy ()
#1 0x00001eec in main ()
#2 0x00001be0 in _start (argc=2, argv=0xbfffe624, envp=0xbfffe630) at /SourceCache/Csu/Csu-46/crt.c:267
#3 0x00001a54 in start ()
(gdb)
Ugotovitev, zakaj se program sesuje prepuscam bralcu v vajo.
Pa ko je to ravno C++, zakaj ne uporabljas std::string, fogl?
Zgodovina sprememb…
- spremenilo: jype ()
OwcA ::
ne rezumem čemu tako, ampak tako nekak piše v helpu (msdn)...čemu potem?
Malo naštudiraj kazalce.
zakj pa to ni c++ ?
C++ standard določa tudi uporabo določenih osnovnih knjižnic, natančneje vsebino imenskega prostora std. S tem, ko uporabiš iostream.h in ne iostream (brez končnice) in ne upoštevaš imenskih prostorov pišeš nestandardno in posledično neprenosljivo kodo.
kako pa naj uporabim std::string ?
Malo poglej pogooglaj.
Načeloma bi koda potem zgledala takole:
#include <iostream> #include <string> int main() { std::string ime; ime = "klemen"; std::cout << ime << std::endl; ime = "klemeeeeeeeeeeeeeeeeeeeeen"; // std::string samodejno raste in se krči glede na potrebe std::cout << ime << std::endl; return 0; }
Otroška radovednost - gonilo napredka.
Jebiveter ::
jype: OT sicer, ampak... Eno vprasanje: A to programiras oz. prevajas na iBook-u?
Namrec zelo zanimivo nakljucje bi bilo, da bi se dva iBook ownerja odlocila za isto ime za svoja racunalnika! (Marvin namrec)
Namrec zelo zanimivo nakljucje bi bilo, da bi se dva iBook ownerja odlocila za isto ime za svoja racunalnika! (Marvin namrec)
Certainty of death. Small chance of success. What are we waiting for?
CCfly ::
Ko kupiš iBooka je edino ustrezno ime Starvin Marvin. Nobenega naključja ni .
Pa ne tistih .h headerjev uporabljat, ker takoj izpuščaje dobim, ko berem tako kodo. Mimogrede na desni imaš članek o C++. Preberi.
Pa ne tistih .h headerjev uporabljat, ker takoj izpuščaje dobim, ko berem tako kodo. Mimogrede na desni imaš članek o C++. Preberi.
BigWhale ::
jure, tvojem programu manjka samo se funkcija, ki pozene shell... Potem bi to bil tak solski primer... ;)
fogl ::
Knjiga iz katere se učim (Matjaž Prtenjak: c++ za velike in male) ima še povsod .h , pa nisem vedu. No zdej pa vem
lp, klemen
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C osnovaOddelek: Programiranje | 1544 (1059) | RunoTheDog |
» | Dinamične struktureOddelek: Programiranje | 1004 (893) | snow |
» | strcpy reče segmatation faultOddelek: Programiranje | 1497 (1448) | MasterMind |
» | [c++[ bilko debilko?Oddelek: Programiranje | 1207 (969) | BigWhale |
» | c++ datotekeOddelek: Programiranje | 4044 (3533) | Vesoljc |