atoi()不喜欢我在做什么

时间:2014-02-24 06:20:44

标签: c

我正在努力解决作业问题。说明是用C编码Vigenere密码。

C不喜欢下面的代码:

rot = atoi(argv[1][index]) - 'A';

rot已被声明为整数;

index也是一个整数;

argv [1]是用户从命令行传递给C的字符串(char数组);

对上述代码的一些解释。

argv [1]是一个字符串数组(在命令行中从用户传递)。我正在使用此字符串中的每个字符来编码用户的消息。要“获取”每个字符,我使用上面的代码。当执行代码的某些分支时,我将索引增加1(不是直接因为它需要在消息包含更多字符时包围密钥)才能到达下一个字符。

我尝试编译时收到以下错误:http://ideone.com/pjPGlT

2 个答案:

答案 0 :(得分:4)

atoi()需要一个“字符串”,真的是char *,你传递的是char

答案 1 :(得分:2)

您可以尝试:

rot = argv[1][index] - 'A';

atoi() 还需要一个“字符串”,目前您正在将字符传递给它。