c++ - printf 和 ASCII 的 C++ 问题
问题描述
我正在尝试根据此示例打印出单个字母字符
char alphabet[27];
for (int i = 0; i < 26; i++) {
alphabet[i] = i + 97;
}
alphabet[26] = 0;
printf("%s\n", alphabet);
for (int i = 0; i < 26; i++) {
alphabet[i] = i + 65;
}
printf("%s\n", alphabet);
这是我正在尝试做的事情:
char singleAlphabetTest[1];
singleAlphabetTest[0] = 97;
printf("%s\n", singleAlphabetTest);
第一个代码工作正常,但我的代码将在控制台下面打印:
A╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠</p>
解决方案
对于打印字符串,你应该至少有两个字符一个是一个字符另一个是 '\0'
char singleAlphabetTest[2];
singleAlphabetTest[0] = 97;
singleAlphabetTest[1] = '\0';
printf("%s\n", singleAlphabetTest);
在 c %s 中是打印一个以 '\0' 结尾的字符数组
我想强调你给出的例子
char alphabet[27];
for (int i = 0; i < 26; i++) {
alphabet[i] = i + 97;
}
alphabet[26] = 0; //important!the string ending with 0 or '\0'
printf("%s\n", alphabet);
for (int i = 0; i < 26; i++) {
alphabet[i] = i + 65;
}
printf("%s\n", alphabet);
推荐阅读
- javascript - 如何在wordpress cms中使用css从div中删除属性
- c++ - 在函数本身而不是在主函数中声明由参数限制的变量有什么问题?
- django - django last_executed_query:sql的目的是什么,函数中传递的params参数
- r - 如何根据 R 中的多列对表数据进行子集化?
- c++ - 如何编辑格式设置以增加换行长度?
- excel - 需要 VBScript 以相对目录或替代方式将 BAS 文件导入 Excel
- javascript - 如何使用 lambda 中的 javascript 在 aws codecommit 中创建一个存储库?
- visual-studio-app-center-distribute - 是否可以在 AppCenter 中构建和分发模拟器构建?
- java - 如何在java中垂直绘制图形?
- css - Vuetify - 在 v-card 中水平居中 v-progress-linear