你如何在Cobol中定义一个二维MxN数组,其中M和N都是可变长度的?
这是尝试在另一个内部使用变量数组时在Net Express中获得的消息:
COBCH0144S OCCURS DEPENDING subsidiary to OCCURS only allowed with ODOSLIDE
Run Code Online (Sandbox Code Playgroud) 我有一个包含项目的数组,我想将它们传递给一个可变长度的方法.你是怎样做的?
即,我有这个(例如):
NSArray *array = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];
[[UIAlertView alloc] initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:[array objectAtIndex:0] otherButtonTitles:[array objectAtIndex:1], [array objectAtIndex:2], nil];
Run Code Online (Sandbox Code Playgroud)
但是想象一下,数组可能有一个可变长度的项目,所以你不能像这样硬编码.
有没有简单的方法可以在RPGLE中直接返回字符长度和类型变量?我在这里讨论的长度不是D规格中规定的长度.我在谈论字符串中有意义的字符的实际数量.假设一个字符类型变量被定义为50个字符长,并且它被赋值为'Hello world!',那么我想要的长度是12,即从'H'到'!'.前导和尾随空白被忽略.有没有简单的方法来做到这一点?
我有点困惑,我真的需要使用那个长度-1.我知道那是我们不希望出错的时候.例如,我写了这个简单的数组:
int [] oldArray = {1, 5, 6, 10, 25, 17};
for(int i = 0; i < oldArray.length; i++){
Run Code Online (Sandbox Code Playgroud)
它没有给我任何错误.-1时的任何例子实际上有用吗?先感谢您.
通常为了节省一些时间,我希望我们在本地函数中使用n = len(s).我很好奇哪个电话更快或者它们是一样的?
while i < len(s):
# do something
Run Code Online (Sandbox Code Playgroud)
VS
while i < n:
# do something
Run Code Online (Sandbox Code Playgroud)
不应该有太大的区别,但是使用len(s),我们需要首先达到s,然后调用s.长度.这是O(1)+ O(1).但是使用n,它是O(1).我这么认为.
我想在 R 中使用一个非常长的向量,但似乎当我创建一个向量时,向量中的最大长度/值的数量是 349。请参阅下面的vector1和代码vector2。我可以vector1毫无问题地创建 349 个值,但是vector2包含 350 个值的 会+在下一行抛出异常,就好像我忘记使用结束符"或一样)。
我读过这篇文章: Max Length for a Vector in R,但这与我的经验完全不同。
我错过了什么吗?有人可以帮忙吗?
代码
vector1 <- c("value1", "value2", "value3", "value4", "value5", "value6", "value7", "value8", "value9", "value10", "value11", "value12", "value13", "value14", "value15", "value16", "value17", "value18", "value19", "value20", "value21", "value22", "value23", "value24", "value25", "value26", "value27", "value28", "value29", "value30", "value31", "value32", "value33", "value34", "value35", "value36", "value37", "value38", "value39", "value40", "value41", "value42", "value43", "value44", …Run Code Online (Sandbox Code Playgroud) 这个C++问题似乎非常基础和一般,但我仍然希望有人回答.
1)具有可变长度参数的函数和重载函数之间有什么区别?2)如果我们有一个带有可变长度参数的函数和另一个具有相似参数的同名函数,我们会遇到问题吗?
因此,如果我的值为 1234,则输出应为 4。
我写了以下代码,但不知道我做错了什么。这是一个应用程序,将两个数字相加。所以我有两个 EditTextfields。但是如果 EditTextfield 留空,应用程序就会崩溃。所以我想将 0 的值分配给一个已经留空的 EditTextfield,因为它(应该)的字符长度为 0。
那应该得到正确的结果:
例如,如果 EditTextfield "firstnumET" 的值为 5 并且 "secondnumET" 留空:
5 + 0 = 5
问题可能是
private int firstnum;
private int secondnum;
private int total;
EditText firstnumET;
EditText secondnumET;
TextView ansTV;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cal2_numbers);
firstnumET = (EditText) findViewById(R.id.edittxt1);
secondnumET = (EditText) findViewById(R.id.edittxt2);
ansTV = (TextView) findViewById(R.id.ans);
button = (Button) findViewById(R.id.btn);
button.setOnClickListener(new ClickButton());
}
private class ClickButton implements Button.OnClickListener {
@Override
public void onClick(View …Run Code Online (Sandbox Code Playgroud) 我已经google了很多,但我找不到有关如何在高级语言中实现可变长度字符串的信息.我正在创建自己的语言,并且不确定从字符串开始的位置.
我有一个描述string类型的结构,然后是一个create分配这样一个'字符串' 的函数:
/* A safer `strcpy()`, using `strncpy()` and `sizeof()` */
#define STRCPY(TO, FROM) \
strncpy(TO, FROM, sizeof(TO)); TO[sizeof(TO) - 1] = '\0'
struct string {
// …
char native[1024];
};
string String__create(char native[]) {
string this = malloc(sizeof(struct string));
// …
STRCPY(this->native, native);
return this;
}
Run Code Online (Sandbox Code Playgroud)
但是,这只允许1kb长的字符串.这有点愚蠢,在大多数情况下会浪费大量内存.
鉴于我必须以某种方式声明要使用的内存...我如何实现一个能够(有效地)存储(有效)无限数量的字符的字符串?
例如:
int[][] matrix = new int[3][1];
int[] vector = {1,2,3,4,5};
matrix[0] = vector;
Run Code Online (Sandbox Code Playgroud)
它编译并正常运行,即使vector它的长度大于一条线的长度matrix.
为什么Java接受这个?
variable-length ×10
java ×2
vector ×2
android ×1
arguments ×1
arrays ×1
c ×1
c++ ×1
cobol ×1
ibm-midrange ×1
matrix ×1
memory ×1
objective-c ×1
overloading ×1
python ×1
r ×1
rpgle ×1
string ×1