我对c很新颖。 我想移动文字' x '创建基本密码。 C凯撒密码ASCII字符换行
遇到了islower ()函数的问题。 我用“我”,但不能改为角色。
#包含
#包含
#包含
#包含
#包含
字符串p;
intmain(intargc,string argv[] ) ) )。
{
//if argument count does not equal 2,exit and return 1
if(argc!=2)
{
打印(lessor more than2arguments given,exiting.n );
返回1;
}
else//promptuserforplaintexttoencrypt
{
p=GetString (;
}
//takethesecondpartofthearray (theintenteredbyuser ) andstoreask (usedastheencryptionkey ) )。
//string k=argv[1];
intk=atoi(argv[1];
//函数:
//c=(PK ) % 26;
//iterateoverthecharactersinthestring
//prepresentsthepositioninthealphabetofaplaintextletter
//clikewiserepresentsapositioninthealphabet
char new;
for(intI=0,n=strlen(p ) ) p; i n; I )
if(islower () char ) )
{
//printf('%cn ',p[I] ) k& );
printf(thisprintsp:%sn ',p );
printf(thisprintsI:%d(n ),) char ) I );
printf(thisprintsk:%dn ',k );
printf (thisprintsoutputoflower (I ) :%dn )、islower(i ) I );
new=(p[I]-97;
new =k;
//printf('%dn ',new &; 97 );
//printf(I=|%c|islowercasen ),I );
printf(%c(n ),new % 26 97 );
}
else {
//printf('%c ',p[I] ) k& );
printf(thisprintsp:%sn ',p );
printf(thisprintsI:%d(n ),) char ) I );
printf(thisprintsk:%dn ',k );
printf (thisprintsoutputoflower (I ) :%dn )、islower(i ) I );
new=(p[I]-65;
new =k;
//printf('%dn ',new % 26 65 );
//printf(I=|%c|isuppercase(n ),I );
printf(%c(n ),new % 26 65 );
}
打印((n );
}
zZ here is my input
This prints p:zZ
This prints i:0
This prints k:1
thisprintsoutputoflower(I ) :0
G here is fails,lowercasezshouldmovetolowercasea
This prints p:zZ
This prints i:1
This prints k:1
thisprintsoutputoflower(I ) :0
A here is a success! upper case Z moves to upper case A
2014-03-05
1
模运算符“%”的优先级高于“”。 如果我是你,我会在' printf () '中用括号。
0
更新了。 谢谢你。
0
我认为reza的意思是(p [i] k ) &。