我有一个NSArray,其中所有对象都从相同的协议继承方法.我想做的是:
NSArray* arr = [NSArray arrayWithObjects:[Type_1 init],[Type_2 init], nil];
for(Protocol *element in arr)
{
[element do_this];
}
Run Code Online (Sandbox Code Playgroud)
arr是具有对象Type_1和Type_2的数组,它们都从名为Protocol的协议继承.
问题是协议不能用作for循环中的类型.我该如何解决这个问题?
我的C编程老师声称这是C中while循环的正确声明.
int main(int argc, char *argv[])
{
while()
{
fork();
}
}
Run Code Online (Sandbox Code Playgroud)
据他说,它与写作完全相同:
int main(int argc, char *argv[])
{
while(1)
{
fork();
}
}
Run Code Online (Sandbox Code Playgroud)
'while()'代码是否可以在任何C标准中编译?
sscanf
像这样工作:
int main(const int argc, const char *argv[]) {
char buf1[1024] = {0};
char buf2[1024] = {0};
char buf3[1024] = {0};
char *str = "abc, 123; xyz";
sscanf(str, "%[^,], %[^;]; %s", buf1, buf2, buf3);
printf("'%s' '%s' '%s'", buf1, buf2, buf3); // Prints: "'abc' '123' 'xyz'"
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一个函数不需要将内容复制str
到buffers(buf1, buf2, buf3
)中,也不需要分配任何新的内存.相反,它只是将指针(ptr1, ptr2, ptr3
)设置为指向匹配的部分,str
并且null终止匹配后的任何内容.
int main(const int argc, const char *argv[]) {
char *ptr1 = NULL;
char *ptr2 = NULL;
char *ptr3 …
Run Code Online (Sandbox Code Playgroud) c ×2
for-in-loop ×1
objective-c ×1
parsing ×1
protocols ×1
scanf ×1
tokenize ×1
types ×1
while-loop ×1