C - 将字符数组与字符串进行比较
C - Compare a char array with string
我有一个套接字服务器,它应该接收一条消息并写一个答案。对于某些消息,我想发送一个特殊的答复。例如,如果消息是 "Hello"
我想回答 "Hi!"
。这是我的代码的一部分:
...
char in[2000];
char out[2000];
...
while((read_size = recv(fd, in, 2000, 0)) > 0){
if(strcmp(in, "Hello") == 0){
strcpy(out, "Hi!\n");
}
else{
strcpy(out, in);
}
write(fd, out, strlen(out));
}
...
但是 strcmp()
在这里不能正常工作。因为当我输入 "Hello"
时, in
变量中不仅有 "Hello"
,因为长度是 2000。但是我现在如何检查,如果接收到的消息是 "Hello"
?
使用strncmp函数,比较字符串的前n个字节:
if (strncmp(in, "Hello", strlen("Hello")) == 0) ...
我有一个套接字服务器,它应该接收一条消息并写一个答案。对于某些消息,我想发送一个特殊的答复。例如,如果消息是 "Hello"
我想回答 "Hi!"
。这是我的代码的一部分:
...
char in[2000];
char out[2000];
...
while((read_size = recv(fd, in, 2000, 0)) > 0){
if(strcmp(in, "Hello") == 0){
strcpy(out, "Hi!\n");
}
else{
strcpy(out, in);
}
write(fd, out, strlen(out));
}
...
但是 strcmp()
在这里不能正常工作。因为当我输入 "Hello"
时, in
变量中不仅有 "Hello"
,因为长度是 2000。但是我现在如何检查,如果接收到的消息是 "Hello"
?
使用strncmp函数,比较字符串的前n个字节:
if (strncmp(in, "Hello", strlen("Hello")) == 0) ...