为什么strlen没有返回正确的值?

问题描述

您好,很抱歉,这是重复的,但是其他解决方案都无法帮助我。找到和找到的变量都是"Point",但是当我调用strcmp时,我得到一个负数,当我打印它们的长度时,它的len为9。请有人帮我理解为什么是这样,并且如何修复(如何使找到和找到的值和长度相同)?非常感谢。

#include <stdio.h>
#include <string.h>
#include <stdbool.h>

int main(void) {
  char found[] = "";
  char tofind[] = "Point";


  int i = 0;

  while(i < 5){
    char f = tofind[i];


    strcat(found,&f);
    i++;

  }

  int r = strcmp(found,tofind);
  printf("%d\n",r);

  printf("Found: %s with len: %lu\n",found,strlen(found));//says len is 9

  printf("To Find: %s with len: %lu",tofind,strlen(tofind)); //says len is 5

return 0;
}

输出

./main
-104
Found: Point with len: 9 this is i: 5
To Find: Point with len: 5

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)