#include <stdio.h>
int main()
{
char _char = 32;
int x, p, i, d;
scanf("%d ", &x);
while(_char == 32)
_char = getchar();
x = x%26;
printf("The encrypted string is: ");
while((_char >= 'a' && _char <= 'z') || (_char >= 'A' && _char <= 'Z'))
{
if(_char >= 'a' && _char <= 'z')
_char = 'a' + (_char + x - 'a')%26;
else
_char = 'A' + (_char + x - 'A')%26;
d = 'a' - 'A';
p = (_char >= 'a') ? _char - d : _char + d;
printf("%c", p);
scanf("%c", &_char);
}
return 0;
}
代碼描述:程序收到一個數字'x',後面跟着空格,然後是一串字母,然後它會打印這些字母(修改)直到第一個數字或沒有更多信件接收。它工作正常,當我運行它的代碼塊,但是當我用CMD插入輸入作爲一個文件,這給了我一個無限循環,如果我插入:C中的死循環
1 FffF
當我添加0或任意數量的正常工作:
1 FffF0
無限循環是某事像:
加密的字符串是: BBBcccDDDeeefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz....
我怎麼能解決售後服務這個!?
小提示:如果不喜歡你的'while'條件來檢查信件做這樣的比較,有一個方便的功能稱爲「isalpha」。還有一些功能可以檢查字符是低位還是大寫:「islower」和「isupper」。 – 2012-04-21 16:08:29