每当我在 dev-C++ 中使用这些功能之一时(我知道它很旧,但由于某种原因仍在我的大学任教。)
strcat,strcpy,strcmp,strchr...//And their variants stricmp...
这些函数的第一个参数必须是一个数组(即:
char ch[]="hello";
但由于某种原因,它不能是指向字符串 bc 的指针,这会导致崩溃。事实上,看看这两个代码的例子:
代码1:
#include<stdio.h>
#include<string.h>
main()
{char ch[20]="Hello world!";
char *ch2="Hello Galaxy!";
strcat(ch,ch2);
printf("%s",ch);
scanf("%d")//Just to see the output.
}
此代码工作正常并给出了预期的结果(Hello World!Hello Galaxy!)
但是逆code2崩溃了。
代码2:
#include<stdio.h>
#include<string.h>
main()
{char ch[20]="Hello world!";
char *ch2="Hello Galaxy!";
strcat(ch2,ch);
printf("%s",ch2);
scanf("%d")//Just to see the output.
}
此代码崩溃并导致
file.exe has stopped working Error.
这对于几乎所有带有两个参数的字符串函数都是一样的。这个问题的原因是什么。