首页 > 解决方案 > 使用 C 从字符串数组中获取特定字符

问题描述

我有一个字符串数组,我想从中打印一个特定的字符:

char *Code[17]={"MAIN: add r3, LIST",
                "LOOP: prn #48",
                "lea STR, r6",
                "inc r6",
                "mov r3, K",
                "sub r1, r4",
                "bne END",
                "cmp val1, #-6",
                "bne %END",
                "dec K",
                "jmp %LOOP",
                "END: stop",
                "STR: .string “abcd”",
                "LIST: .data 6, -9",
                ".data -100",
                ".entry K",
                "K: .data 31"};
printf("%s",&Code[1][4]);

我要打印的字符是第二个字符串中的“ ”(循环:prn #48)。

当我尝试使用printf("%s",&Code[1][4]);打印时 我得到的是“ :prn #48

我想单独打印字符“ ”所以我也尝试使用 %c 进行打印并收到以下警告:

警告:格式“%c”需要“int”类型的参数,但参数 2 的类型为“char *”

如何从数组中的特定字符串中获取特定字符?

另外,为什么我会收到 %c 需要 int 类型的警告?%c 不是用于打印和扫描一个字符吗?

标签: arraysccharprintfc-strings

解决方案


printf("%s",&Code[1][4]);打印从 开始的 C 字符串&Code[1][4]

printf("%c",Code[1][4]);打印字符Code[1][4](来自 address &Code[1][4],但这与%c需要传递的字符无关,而不是其地址)。


推荐阅读