我一直在這裏一段時間,真的可以使用一些幫助。我正在製作一個密碼程序,其中一個函數測試開始和結束之間的字符是否有中間大寫字母。這是我曾嘗試:如何使用指針讀取字符串中間的字符?
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