我一直在这里一段时间,真的可以使用一些帮助。我正在制作一个密码程序,其中一个函数测试开始和结束之间的字符是否有中间大写字母。这是我曾尝试:如何使用指针读取字符串中间的字符?
int hasMiddleUpper(char *pass) {
int test=0, testu=0, testl=0, count;
char c;
while (c = *pass++) {
test++;
}
pass = pass - test + 1;
while (c = *pass++) {
if (isupper(c)) {
testu=1;
}
}
pass--;
while (c = *pass++) {
if (isupper(c)) {
testl=2;
}
}
count = testu + testl;
if (count==1) {
return 1;
}
else {
return 0;
}
}
int pwstrength(char *pass)
{
int test, test1,test2, test3, result;
test= hasUpperAndLower(pass);
test1 = hasAlphaDigits(pass);
test2 = hasEightOrMore(pass);
test3 = hasMiddleUpper(pass);
result = test + test1 + test2 + test3;
return result;
}
int main(void) {
int a;
char *p= "Pass3wordD";
a= pwstrength(p);
printf("%d \n", a);
system("Pause");
}
我遇到的问题是它读取了我试图避免的结束字符。 – user2023608 2013-03-06 20:32:02
你有没有一个你想要做什么的例子? '如何使用指针读取字符串中间的字符?'并不是什么问题......你想读哪些字母?你在跟他们做什么?你称之为字符串的“中间”是什么? – Mike 2013-03-06 20:33:33
..还有,你没有缩进? – 2013-03-06 20:34:41