c - 如何使用 argv 打印 ASCII?

标签 c ascii

scanf("%c",&c);    
printf("%c",c+1);

如果输入“a”,它会按我的意愿打印“b”,但如果我尝试这样做,它会打印一个奇怪的问号。

char p[50];
char x = argv[1];
scanf(" %[^\n]s", p);
printf("%c\n", x+p[0]);

因为我想像 ./prog 1 一样运行程序,并且 1 将添加到字母的值中,因为 'a' 将变为 'b'。 但它打印出这个:....

最佳答案

我可以看到您添加的是字符而不是整数。你必须考虑的是,例如“1”的值(在 ASCII 49 中)与 1 不同。此外,argv[1] 主要是指向 char 的指针,因此这应该警告您正在从指针。因此,您必须先将 argv[1](在本例中为字符数组 - 字符串)转换为整数。如果有这样的说法,当然可以(访问前需要检查)。

关于c - 如何使用 argv 打印 ASCII?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31772503/

相关文章:

c - 生成给出相同数字的随机数

c - 将动态数组的第一个值与最大值交换而不改变其余值的顺序

c - 从文件中反转字符串,将字符串中的字符替换为另一个字符串并打印

c - 加号未被读取

javascript - 连接具有不同编码的 javascript 文件

c - 如何使用 pthread、pthread_exit 将 * 转换为 double/float

c - 在双向链表当前位置插入节点

c - 如何将ascii字符串转换为二进制?

C++//尝试重写工作代码以包含我的函数

c - Unicode 存储在 C 字符中