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!之后的都很奇怪。
求高人指点。