有人可以解释一下,为什么我会在输出中得到这些奇怪的字符?
我收到了这段代码:
#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;
}
我在终端上得到了这个:
pedro@pedro-VirtualBox:~/Desktop/SDMEU$ gcc table_client.c -o table-client
pedro@pedro-VirtualBox:~/Desktop/SDMEU$ ./table-client ola:eu
ola N
pedro@pedro-VirtualBox:~/Desktop/SDMEU$
我不应该得到ola
吗?
答案 0 :(得分:2)
将NUL('\0'
)放在字符串的末尾。
char server[lenServer+1];
memcpy(server,argv[1],lenServer);
server[lenServer]=0;