从 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 &gt; 7)总是为假,循环永远不会运行。

删除 for 循环。

然后,修复 printf 格式字符串。您不能将指针与%c 配对。您也不能使用%s,因为那是用于以 NUL 结尾的字符串。


1The citations 特别有启发性。

【讨论】:

以上是关于从 int 数组转换为 char 数组的主要内容,如果未能解决你的问题,请参考以下文章

如何将字节从char数组转换为int

LPCWSTR 和char数组的转换

如何将char数组转换为CString

将char数组转换为int数组c#

如何将转换为 char 数组的 int 返回到 main 以显示它

将char数组转换为int数组[重复]