누군가 나에게 설명 할 수 있습니까? 왜 출력에 이상한 문자가 나옵니까?터미널의 이상한 문자
#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'' –
그래서 내가 무엇을 할 sould? 그 호기심, 사촌 내가 printf ("% s \ n", lenServer); 배열 서버 []를 만들기 직전에 얻을 수있는 것을 얻습니다 : S –
문자 배열 기억이 C와 다르면 유효한 문자열은 항상 널 문자로 종료됩니다. ""% s "'문자열을 출력하기 위해 사용합니다. 그것을 프린트하기 전에 아래의 대답과 같이''\ 0 ''을''server []'의 끝 문자로 사용해야합니다. –