代码之家  ›  专栏  ›  技术社区  ›  Nono

C-比较字符数组和字符串

  •  1
  • Nono  · 技术社区  · 9 年前

    我有一个套接字服务器,它应该接收消息并编写答案。对于一些信息,我想发送一个特别的答复。如果消息是例如 "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() 在这里工作不好。因为当我输入时 “你好” 不仅有 “你好” 在中 in 变量,因为长度是2000。但我现在如何检查,如果收到的消息是 “你好” ?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Mattia F.    9 年前

    使用 strncmp公司 函数,它比较第一个 n 字符串的字节数:

    if (strncmp(in, "Hello", strlen("Hello")) == 0) ...
    
    推荐文章