以下方法var i = 1;
$("#add").click(function () {
$("#tr_clone").clone().find("input,select").each(function () {
$(this).val('').attr("id", function (_, id) { return id + i });
}).end().appendTo("table");
i++;
});
$("#expense_type_" + i).change(function () {
alert($(this).val());
});
给了我一个无限循环(无限“hello”语句)。要查找非空终止字符串的长度,我需要注意什么,因为没有'\ 0'?。
slength
这种方法似乎有效,但我觉得有太多的检查需要考虑。有更简单的方法吗?
int slength(const char *s) {
printf("hello");
int i = 0;
while (s != NULL) {
i++;
s++;
printf("hello");
}
return i;
}
答案 0 :(得分:2)
由于您没有使用标准C字符串,而是想要创建自己的字符串类型,因此不能使用常用的C方法来遍历字符串。我建议你制作一个像
这样的数据结构struct string {
const char *text;
int length;
};
跟踪字符串的长度。使用附加长度信息循环。您可能必须创建许多处理字符串的C标准库函数的自己版本,转换和工厂函数将非常有用。
以下是C中用于跟踪长度的字符串实现的几个示例:
Paul Hsieh的 来自D. R. Hanson的C 接口和实现的否则,只使用以null结尾的字符串,因为这是C中的默认字符串。例如,字符串文字以空字符结尾。
答案 1 :(得分:0)
将while(s!=NULL)
替换为while(*s!=NULL)
。