C - 将字符数组与字符串进行比较

标签 c string compare strcmp

我有一个套接字服务器,它应该接收一条消息并写一个答案。对于某些消息,我想发送一个特殊的答复。例如,如果消息是 "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) ...

关于C - 将字符数组与字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37859457/

相关文章:

c - C中sprintf的段错误

javascript - 我正在尝试拆分一个包含大写字母的单词。当重复出现时失败

xml - 将两个 xml 文件与 xslt 进行比较?

java - 使用 printf() java 比较 2 个数字

c - C 中自引用宏的任何解决方法?我想附加到一个宏

c# - 你能在一个衬里中获得最大长度的 String.Split 吗?

c - C语言嵌套for循环

uiimage - 比较两个 UIImages

c - 如何修复 scanf 中的 %ms 警告

c - 如何使下面的代码第二部分起作用