-
一楼,小龙飞来飞去搞笑,看来你的C语言也是半生不熟的。
str 和 str2 最初是字符数组名称,传入的 scanf 与 %s 完全匹配。 我不知道一楼是怎么调试的,居然上面写着“调试程序”。
房东的问题是,比较两个密码应该比较 str 和 str2,而不是 A 和 b。
若要比较字符串,请使用 strcmp 函数,该函数返回 0 以指示相等。
它应该像这样更改:(GCC 调试通过)。
#include
#include
#include
int main(void)
char str[258],str2[258],a,b;
printf("请输入您的密码并按回车键完成:");
a=scanf("%s",str);
printf("请重复密码并按回车键完成:");
b=scanf("%s",str2);
strcmp 是一个比较两个字符串的函数,返回 0 表示相等,以包含头文件 if (strcmp(str,str2)==0)printf("密码正确! ");
elseprintf("密码错误! ");
system("pause");
return 0;
-
调试程序:房东忘了写&符号。
#include
#include
int main(void)
char str[258],str2[258],a,b;
printf("请输入您的密码并按回车键完成:");
a=scanf("%s",&str);
printf("请重复密码并按回车键完成:");
b=scanf("%s",&str2);
if (a==b)
printf("密码正确! ");
elseprintf("密码错误! ");
system("pause");
return 0;
-
首先,scanf 输入字符串的返回值是读取的字符串的长度。
一致的长度并不表示字符串匹配。 因此,有必要使用 strcmp 来比较得到的两个字符串是否一致。
#include
#include
int main(void)
char str[258],str2[258];
printf("请输入您的密码并按回车键完成:");
scanf("%s",str);
printf("请重复密码并按回车键完成:");
scanf("%s",str2);
if (strcmp(str, str2)==0)printf("密码正确! ");
elseprintf("密码错误! ");
system("pause");
return 0;
-
同意二楼的观点; 这种比较没有意义; 字符串应进行 strcmp 比较; 但是,scanf 不是返回读取字符串的长度,而是返回成功分配的变量数;
建议你主动直接给她打电话,因为**更亲切,说得更清楚! 如果行得通,那就没问题了,以后还会继续朝着好的方向发展 如果她还是无动于衷,那你就得考虑是不是有什么你做得不够的地方了! 然后你必须自己修复它! >>>More
在 VisualStudio 2013 中编写和调试 C 语言程序的步骤: 1.打开 [文件] - 新建 - 项目以打开“新建项目”窗口。2. 在[模板]、[名称]、[位置]和[解决方案名称]中选择[Visual C++] Win32控制台应用程序,可以根据需要填写。 >>>More
1、开始运行类型:regedit,然后按Enter2,选择“我的电脑”,然后点击“文件”“导出”,点击“保存”任意名称。 这样做的目的是备份注册表,以便在误操作后及时恢复。 >>>More
IE8很多网友都反映不是很稳定,减少版本或者升级试试,如果不起作用,建议换成其他版本的浏览器。 例如:360安全浏览器,世界之窗。 如果您不想更改它,请尝试以下方法: >>>More