我是 c 语言的新学生,我只是想出了这个。我编码:
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[80];
printf("Enter sth: ");
char st1 = gets(str);
printf("Enter sth: ");
char st2 = gets(str);
if(strcpy(st1,st2))
printf("Same\n");
else
printf("Different\n");
return 0;
}
我的目标是检查我从键盘输入的 2 个字符串是否相同。我编译它并收到一些警告:
hello.c:在函数'main'中:hello.c:9:16:警告:初始化从没有强制转换的指针生成整数[默认启用]
hello.c:12:16: 警告:初始化从没有强制转换的指针生成整数 [默认启用]
hello.c:14:5: 警告:传递 'strcpy' 的参数 1 使指针从整数不进行强制转换 [默认启用]
/usr/include/string.h:128:14:注意:预期的 'char *限制 ' 但参数的类型为 'char'</p>
hello.c:14:5: 警告:传递 'strcpy' 的参数 2 使指针从整数不进行强制转换 [默认启用]
/usr/include/string.h:128:14:注意:预期为 'const char * restrict ' 但参数的类型为 'char'</p>
Enter sth: asd
Enter sth: asd
Output : Segmentation fault (core dumped)
Segmentation Fault 当你想访问它不存在的时候,我看到这是一个错误!
我在 Stackoverflow 中搜索了一些类似的问题,但我不明白为什么这段代码不起作用。谢谢!