這裏練習使用指針的時候是我的程序:越來越怪異輸出在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