webForumDet fria alternativet

char fråga

C/C++

4 svar · 596 visningar · startad av Danielkun

Medlem sedan maj 2003361 inlägg
Frågan#1

Varför funkar inte detta? Och hur gör jag för att stoppa i HOHO i char_cmd?

char char_cmd[128] = "HAHA";
char_cmd = "HOHO";
printf("%s", char_cmd);
Medlem sedan sep. 2006867 inlägg
#2

Char är väl bara ett enda tecken, och det verkar som att du egentligen vill använda en string? char_cmd[128] är förvisso en array med 128 tecken, men fortfarande inte en string.... Längesedan jag pysslade med C men jobba med string istället är mitt tips.

Medlem sedan juni 20008 205 inlägg
#3

string-klassen är förstås roligare, men vill du använda ren C får du använda strcpy/strncpy. Anledningen till varför du inte kan göra som du gör är för att man bara kan initiera en array (vilket din char_cmd är) när man deklarerar den.

Medlem sedan juni 200010 432 inlägg
#4

Eller så skriver du en copy själv:

void cpy(char *a, char *b)
{
   while(*(b++)=*(a++));
}
Medlem sedan maj 2003361 inlägg
#5

tack, det gick bra med strcpy

255 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)