strcat:
// strcat
#include <stdio.h>
#include <string.h>
char *Strcat(char *dest, const char *src)
{
char *tmp = dest;
while ('\0' != *dest) {
dest++;
}
while ('\0' != (*dest++ = *src++)) {
;
}
return tmp;
}
int main(int argc, char **argv)
{
char string[100];
strcpy( string, "Hello world from " );
Strcat( string, "strcpy " );
Strcat( string, "and " );
Strcat( string, "strcat!" );
printf( "String = %s\n", string );
return 0;
}
很奇怪,之前在VC6中調試時,在進入Strcat函數時,dest的值與string的值不一樣,見下圖:
我也問了同學,在他們機子上試了,竟然也出現這個問題,真的懷疑是不是bug?而如果直接運行,輸出又是正確的,VS中調試、運行也都沒錯,不過後來重新在VC6中建工程、文件,又對了,真是費解。
上圖中剛進Strcat函數dest的值就加了1,然後再按F11,dest值又加了1!之後的都很奇怪。
求高人指點。