openlang

把整数数组转换为 C 字符串

我想把整数数组中的一些元素转换成 C 字符串。 下面是我目前做法的一个例子。

int digits[] = {2,4,3,0};
char text[6];
for (int pos=0; pos<4; ++pos) {
    text[pos]=digits[pos];
}
printf("%s",text);

结果却显示爱心或者笑脸,我不明白为什么会这样。

从英语翻译查看原文

后续讨论 2

顺着彼此的依据读下去
  1. 固定链接

    你贴出的程序根本无法输出结果,因为它编译不过。

    不太清楚你想实现什么,不过可以看看这个例子。

    int main(void) {
        int digits[] = {2, 4, 3, 0};
        char text[sizeof(digits) / sizeof(digits[0]) + 1] = {0,};
        char pieces[sizeof(digits) / sizeof(digits[0])][12];
        for (int pos = 0; pos < 4; pos ++ ) {
            text[pos] = digits[pos] % 10 + '0';
            snprintf(pieces[pos], 12, "%d", digits[pos]);
        }
        printf("%s\n", text);
        for (int pos = 0; pos < 4; pos ++ ) {
            printf("%s\n", pieces[pos]);
        }
    }
    从英语翻译查看原文

同一个问题的其他角度

  1. 调用 String.Format 时怎样转义百分号?

    我的 strings.xml 文件保存了一个 SQL 查询,我想在代码中用 String.Format 构造最终字符串。SELECT 查询中有一个类似下面这样的 like 子句。 为了格式化,我用 %1$s 替换 'pattern',得到下面这样。…

    回复 3最近活动 java
  2. 在 F# 中格式化字符串

    我正在第一次编写 F# 库 使用 string.Format 时,提示说这个函数不存在。 是我哪里弄错了,还是本来就不能用?

    回复 2最近活动 fsharp
  3. 提取 tcl 字符串中的一部分

    我想用 tcl 拆开 Reports/Report#2.rpt,只留下 Report#2.rpt。我试了下面的办法,但运行时没有得到任何输出。

    回复 2最近活动 tcl