【发布时间】:2014-04-25 12:11:55
【问题描述】:
当我进行比较时,我试图在另一个字符串的末尾添加一个字符串。这就是我在 java 中的做法(可能不是合法的 java 代码 - 已经有一段时间了):
String input = "addl $1,%eax";
String[] registers = {"eax", "abx", "ebx", "edx"};
String s = "addl $1,%";
for (int i = 0 ; i < 4; i++) {
if (input.equals(s + registers[i])) {
printf("Match");
// write out optimized code with specified register
}
}
我完全不确定如何在 C 中执行此操作。我尝试了以下方法,但我的程序不断崩溃(我认为是因为一些指针废话):
...
char *in = "Hell";
char *pattern = "Hello";
const char *a[2];
a[0] = "e";
a[1] = "o";
char *result = strcat(in,a[1]);
if (strcmp(in, result) == 0) {
printf("Helloooooooooooooooo");
}
谁能告诉我如何在 C 中进行这种字符串操作?
【问题讨论】:
-
char *in = "Hell";应该写成:const char *in = "Hell";。它指向只读内存,你不能写入它 -
if (input == s+registers[i])-->if (input.equals(s+registers[i])) -
C 是图灵完备的语言,为什么这不可能?除了没有足够内存的情况
-
为什么不可能?