我有一个Bash脚本,我想在传递的参数中保留引号.
例:
./test.sh this is "some test"
Run Code Online (Sandbox Code Playgroud)
然后我想使用这些参数,并重用它们,包括整个参数列表的引号和引号.
我尝试使用\"$@\",但删除了列表中的引号.
我该如何做到这一点?
我明白我可以使用指针来实现功能.
有人可以解释为什么会使用它们,以及如何使用它们?简短的示例代码对我很有帮助.
我正在看一个strcpy示例,它们增加指针的值,并将其分配为1行,如下所示:
*ptrA++ = *ptrB++;
Run Code Online (Sandbox Code Playgroud)
我知道指针在char数组中指向的值会增加,并且内容会被复制.
做c之类的事情
*ptrA = *ptrB;
ptrA++;
ptrB++;
Run Code Online (Sandbox Code Playgroud)
在后台?
出于调试目的,我发现显示数据结构的内容很有用.(例如,在Python中,我只是"打印some_dict_name").
这可以通过使用标准库在C中实现,或者我是否必须根据数据结构自行实现?
考虑以下代码,我必须再次遍历StructArray以显示其所有内容.
#include <stdio.h>
struct SomeStruct {
int id;
};
int main() {
struct SomeStruct StructArray[10];
int x = 0;
for (x = 0; x < 10; x++) {
StructArray[x].id = x;
}
for (x = 0; x < 10; x++) {
printf("StructArray[%d].id = %d\n", x, StructArray[x].id);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我试图理解这是如何工作的(我知道它的作用,我只是不明白如何).据我所知,这会读取一个字符,直到达到EOF,如果它是一个数字,则把它放在数组中:
while ((c = getchar()) != EOF)
if (c >= '0' && c <= '9')
++ndigit[c-'0'];
Run Code Online (Sandbox Code Playgroud)
我知道我可以像这样索引一个数组:
some_array[1] = 12;
Run Code Online (Sandbox Code Playgroud)
这将把12放在第二个元素中.
怎么c-'0'办?
(我从K&R的C编程语言第2版这本书中得到了这个)