动态创建变量时[i]的未声明标识符

意图过滤器

以下代码应该使用终止密码对句子进行加密,但仍然是WIP,我还没有考虑空格,小写字母等。

int main(int argc,string argv[])
{
    int k = atoi(argv[1]);
    string value = GetString();
    int n = strlen(value);

    for(int i = 0;i<n; i++);
    {
        char temp = value[i];
        int conv = temp - (int)'A';
        int cipher = (conv + k)%26;
        char final = cipher + (int)'A'; 

        printf("%c\n",final); 
    } 
}

我懂了

caeser.c:15:23 use of undeclared identifier i. 

在线上 char temp = value[i];

克尼格

删除for末的分号

for(int i = 0;i<n; i++);

声明int i在那里使它在for块的局部,但是由于分号是一个空块。

因此,在下面的代码块中(之间{ }i没有声明,因为它不属于for

这还将修复程序不执行for一次以上的主体(如果编译的话)。如果已编译,则该for循环将一直循环直到n但不执行任何操作。然后,花括号之间的代码将被执行i == n(假定i对该代码块可见)。因此,您的代码将始终以temp == '\0'(在中终止为null value执行,并始终输出相同的密码值。

ENCORE:(如评论中所述,但出于完整性考虑)

不需要将字符文字强制转换为ints(int conv = temp - (int)'A';),这有两个原因:

  1. 与看起来直觉的字符文字相反,是ints而不是chars(我相信这在C ++中是不同的)
  2. 但是,即使不是1.,achar总是小于an int,因此总是适合a内,int因此可以安全地进行推广。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当提供未声明的变量标识符时,typeof如何避免ReferenceError?

来自分类Dev

调用方法时使用未声明的标识符

来自分类Dev

未声明的标识符,但已声明

来自分类Dev

使用未声明的标识符AFHTTPClient

来自分类Dev

“使用未声明的标识符”

来自分类Dev

使用未声明的标识符“连接”

来自分类Dev

使用未声明的标识符“警报”

来自分类Dev

使用未声明的标识符“ UIUserInterfaceIdiomTV”

来自分类Dev

'OPENFILENAME':未声明的标识符

来自分类Dev

使用未声明的标识符“ SKSpriteNode”

来自分类Dev

未声明的标识符'FBAppCall''FBDialogs'

来自分类Dev

FBSDKGraphRequest使用未声明的标识符

来自分类Dev

使用未声明的标识符“ myWebMain”?

来自分类Dev

TButton未声明的标识符

来自分类Dev

ISampleGrabber未声明的标识符

来自分类Dev

使用未声明的标识符-Xcode

来自分类Dev

使用未声明的标识符“ SKSpriteNode”

来自分类Dev

使用未声明的标识符

来自分类Dev

使用未声明的标识符UIApplicationOpenSettingsURLString

来自分类Dev

未声明的标识符C ++

来自分类Dev

Delphi未声明的标识符ansistring

来自分类Dev

使用未声明的标识符“ UILocalNotification”

来自分类Dev

未声明的标识符使用arrayfire

来自分类Dev

'打开'-未声明的标识符

来自分类Dev

未声明的标识符 -NSBackgroundActivityScheduler

来自分类Dev

Delphi 未声明的标识符

来自分类Dev

未声明的标识符,尽管已声明

来自分类Dev

LLDB为本地变量提供“使用未声明的标识符”错误

来自分类Dev

设置了变量但未使用警告,但还有未声明的错误标识符