这里练习使用指针的时候是我的程序:越来越怪异输出在C
#include <stdio.h>
int tokenCopy(char* dest, const char* src, int destSize)
{
int i;
for (i = 0; i < destSize-1; i++) {
if (src[i] != '\0' && src[i] != EOF && src[i] != ' '){
dest[i] = src[i];
} else {
dest[i] = '\0';
break;
}
}
return i;
}
int main()
{
char buff[5];
int n = tokenCopy(buff, "This is a string", 5);
printf("%d '%s'\n", n, buff);
}
我试图用这个复制从字符串中提取到另一个字符串的字符串。有了这个测试用例,我应该得到4 'This'
。但我得到4 'This�'
。我知道我的循环以某种方式终止索引比它应该是,但我不知道如何解决它。
我知道有一个内置的功能可以帮助我这种情况,但我真的想找出问题,感谢
@iwin:它不起作用。如果目标缓冲区长度为50个字节,我们将12个字符串复制到它中,索引12到50中的字符将为垃圾 – naccyde