有人可以解釋我,爲什麼我在輸出中得到這些奇怪的字符?終端上的奇怪字符
我得到這個代碼:
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[]){
if(argc!=2){
printf("Incorrect number of arguments\n");
return -1;
}
int lenServer=0;
int i=0;
while(argv[1][i]!=':'){
lenServer++;
i++;
}
char server[lenServer];
memcpy(server,argv[1],lenServer);
printf("%s\n",server);
return 1;
}
我得到這個終端上:
[email protected]:~/Desktop/SDMEU$ gcc table_client.c -o table-client
[email protected]:~/Desktop/SDMEU$ ./table-client ola:eu
ola N
[email protected]:~/Desktop/SDMEU$
不應該我只是得到ola
?
'server'不是' '\ 0''終止,並宣佈它爲'字符服務器[lenServer + 1];'+1'' \ 0'' – 2014-12-06 11:54:01
那麼要高度重視怎麼辦?它好奇,因爲如果我把一個printf(「%s \ n」,lenServer);在創建數組服務器[]之前,我得到了它想要得到的結果:S – 2014-12-06 11:57:18
記住char數組不同於那麼C中的字符串,一個有效的字符串總是nul終止字符數組,''%s「'用來打印字符串在打印之前,你必須在''\ 0''中作爲'server []'中的結束字符,如下面的答案。 – 2014-12-06 12:19:06