#include <stdio.h>
#include <cs50.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
int vigenere_low( char c )
{
int v = c - 'a';
return v;
}
int vigenere_up( char c )
{
int v = c - 'A';
return v;
}
int keyword_low( char c )
{
int k = c - 'a';
return k;
}
int keyword_up( char c )
{
int k = c - 'A';
return k;
}
int main( int argc, string argv[] )
{
string p;
string keyword = argv[1];
if ( argc != 2 )
{
printf("Usage: ./vigenere keyword\n");
return 1;
}
for ( int i = 0, n = strlen(keyword); i < n; i++ )
{
if ( !isalpha( keyword[i]) )
{
printf("Usage: ./vigenere keyword(alphabetical) \n");
return 1;
}
}
p = GetString();
int j = 0;
for ( int i = 0, n = strlen( p ); i < n; i++ )
{
if ( isalpha( p[i]) )
{
if ( islower( p[i]) )
{
if ( islower( keyword[j]) )
{
int a = (( vigenere_low( p[i]) + keyword_low( keyword[j]) ) % 26 ) + 'a';
printf("%c", a);
j++;
}
else
{
int a = (( vigenere_low( p[i]) + keyword_up( keyword[j]) ) % 26 ) + 'a';
printf("%c", a);;
j++;
}
}
if ( isupper( p[i]) )
{
if ( islower( keyword[j]) )
{
int a = (( vigenere_up( p[i]) + keyword_low( keyword[j]) ) % 26 ) + 'A';
printf("%c", a);
j++;
}
else
{
int a = (( vigenere_up( p[i]) + keyword_up( keyword[j]) ) % 26 ) + 'A';
printf("%c", a);
j++;
}
}
else
{
printf("%c", p[i] );
}
}
return 0;
}
}
Brackets表示此首选项文件在启动时无效,并且未应用任何首选项。
感谢您的帮助,祝您度过愉快的一天。
答案 0 :(得分:1)
您可以使用jsonlint.com验证您的json。在关闭之后,似乎你有一个额外的“,”。