首页 > 解决方案 > C - 字符到 ASCII:'a' 打印为 6

问题描述

我一直在尝试在 C 中将 char 转换为 ascii。我注意到,当输入像 'a' 这样的字符而不是程序打印 'a', 97 时,它会打印 6、54。出于某种原因,它正在接受我的输入 ' a' 为 6,我不知道为什么。

代码如下。

#include <stdio.h>

#define MAX 100

int main(int _nArgs, char _cArgs[MAX])
{
    printf("%c, %i", _cArgs[1], _cArgs[1]);

    return 0;
}

标签: cascii

解决方案


main错误地定义了函数。

你可以定义main为:

int main(void) {
    /* ... */
}

或作为

int main(int argc, char *argv[]) {
    /* ... */
}

或等效的(或以某种实现定义的方式,但不要担心)。

您已将 的第二个参数定义main为 的数组char,该数组已调整为 type char*。它必须是char**char *[]。(并且MAX声明中的 被悄悄地忽略了。)

可以为参数使用任何您喜欢的名称,但argcargv是常规名称,没有充分的理由使用其他名称。

解决此问题后,您可以将第一个命令行参数的第一个字符称为argv[1][0]. (argv[0]指向代表程序名称的字符串。)

\n您应该在输出的末尾打印一个换行符。


推荐阅读