从 int 数组转换为 char 数组
Posted
技术标签:
【中文标题】从 int 数组转换为 char 数组【英文标题】:Convert from int array to char array 【发布时间】:2020-04-09 22:02:20 【问题描述】:四处搜索后,我无法理解如何将从 int 数组 [x] 获得的值转换为 char 数组 [x] 执行此代码会给我一个空结果。
我看到了像char x = 98;
这样的语法
它适用于单个 var,但不适用于数组。
#include <stdio.h>
int main(void)
int st[6]=99,102,107,111,117,121;
int cl = 0;
char pw[7]='\0';
for (cl = 0; cl > 7; cl++)
if (cl == 1) pw[1] = st[2];
if (cl == 2) pw[2] = st[5];
if (cl == 3) pw[3] = st[1];
if (cl == 4) pw[4] = st[3];
if (cl == 5) pw[5] = st[6];
if (cl == 6) pw[6] = st[4];
if (cl == 7) pw[7] = st[5];
printf("\n : %c ", pw);
return 0;
我需要代码来加密文本然后破译它们。 我想知道我错在哪里。 PS:如果您运行代码,我不对结果负责。
【问题讨论】:
请提取并提供minimal reproducible example。另外,请描述您观察到的以及您期望看到的,而不仅仅是您的解释。 不相关,但 C 和 C++ 中的数组是从 0 开始的,而不是从 1 开始的。 本网站使用问答格式,请勿编辑问题以包含答案。相反,您可以接受已发布的答案,或在“答案”框中发布您自己的答案 @M.M 很高兴下次知道谢谢您的建议。 【参考方案1】:Useless use of for loop1....
其实比没用还糟糕,因为迭代条件(cl > 7
)总是为假,循环永远不会运行。
删除 for 循环。
然后,修复 printf 格式字符串。您不能将指针与%c
配对。您也不能使用%s
,因为那是用于以 NUL 结尾的字符串。
1The citations 特别有启发性。
【讨论】:
以上是关于从 int 数组转换为 char 数组的主要内容,如果未能解决你的问题,请参考以下文章