import program from 'commander';
describe('test', function() {
before(function() {
new program.Command();
program.Command.prototype._alias = 'testAlias';
program.Command.prototype._name = 'testName';
program.Command.prototype._description = 'testDescription';
});
it('first test', function() {
console.log(program);
});
});
我有这段代码。
我想,如果我输入
22s33
打印
好传
其他
传球错误
如何验证#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <math.h>
int main()
{
char password[10];
int i;
int contor=0;
printf("introdu parola ");
scanf("%c",&password);
for(i=0;i>=10;i++)
{
if (isalpha(password[1])) contor=1;
}
if(contor=1) {printf("good pass");}
else {printf("bad pass");}
return 0;
}
数组中的某个位置?上面的方法似乎不起作用。有人能解释我为什么我的逻辑错误吗?
//编辑:我已经纠正过了。看起来效果很好。谢谢你们。
答案 0 :(得分:4)
您有多个问题,其中一些是基本概念。建议重新阅读C书。
提供一些提示,
scanf("%c",&password);
应为scanf("%9s",&password);
详细信息: %c
读取并存储单个char
,对于字符串,您需要%s
。 9
用于表示最大字段宽度,以避免缓冲区溢出超出预期的输入。
for(i=0;i>=10;i++)
应为for(i=0; i<10; i++)
,并非完全要求。
详细信息:使用调试器和逐步执行检查i
的值。此外,如果您正在寻找特定的索引,为什么要循环呢?
if(contor=1)
应为if(contor == 1)
详细信息: =
是赋值运算符,而您需要的是比较==
运算符。
等
编辑:OP更新,
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <math.h>
int main() {
char password[10];
int i;
int contor=0;
printf("introdu parola ");
scanf("%s",&password);
for(i=0;i<10;i++) {
if (isalpha(password[1])) contor=1;
}
if(contor==1) {
printf("good pass");
}
else {
printf("bad pass");
}
return 0;
}
评论:这样做更好,但仍需要改进。
scanf("%s",&password);
最好是scanf("%9s",password);
for(i=0;i<10;i++) { if (isalpha(password[1])) contor=1; }
没有意义,你从来没有在循环中有意义地使用i
。如果您只想检查第二个(或第三个?)元素,可以跳过循环并直接写入
if (isalpha(password[1]) {
/*print good password*/
}
else {
/* print bad password*/
}