Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Python到C列表函数的转换_Python_C_List_Function - Fatal编程技术网

从Python到C列表函数的转换

从Python到C列表函数的转换,python,c,list,function,Python,C,List,Function,我用Python编写了上述函数,因为我更熟悉Python语言。它所做的是搜索一个10乘10的列表,如果一行用*填充,那么它将删除它并在顶部放置一个新的空行 我知道c没有我使用的列表函数。有什么简单的方法可以解决我正在做的事情吗?在C语言中,不幸的是,这个问题会非常困难。需要为矩阵分配一个内存块。当您想“删除”一行时,您必须将所有内容向上移动,并释放矩阵底部的额外内存 如果你可以使用C++,这将更容易用STL容器完成。你可以有一个向量向量。删除一行将调用擦除: L = [[" " for i in

我用Python编写了上述函数,因为我更熟悉Python语言。它所做的是搜索一个10乘10的列表,如果一行用*填充,那么它将删除它并在顶部放置一个新的空行


我知道c没有我使用的列表函数。有什么简单的方法可以解决我正在做的事情吗?

在C语言中,不幸的是,这个问题会非常困难。需要为矩阵分配一个内存块。当您想“删除”一行时,您必须将所有内容向上移动,并释放矩阵底部的额外内存

如果你可以使用C++,这将更容易用STL容器完成。你可以有一个向量向量。删除一行将调用擦除:

L = [[" " for i in range(10)] for j in range(10)]

for i in range (10):
    L[9][i]="*"
for i in range (10):
        L[8][i]="1"
for i in range (10):
        L[7][i]="*"
for i in range (10):
        L[6][i]="3"
for i in range (10):
        L[5][i]="*"

print(L)
print()

def Check_Lines(l):
    for i in range (10):
        x=l[i].count("*")
        if x == 10:
            print ("LINE IS FULL")
            del l[i]
            l.reverse()
            l.append([" "," "," "," "," "," "," "," "," "," "])
            l.reverse()


Check_Lines(L)
print (L)

你试过什么?C语言当然没有一种本地的方式来管理动态列表,您拥有的是数组,但要以动态方式使用它们,您需要使用指针。我不知道从哪里开始用C重写内置函数。我更多的是想让别人用你说的“指针”来回应,这样我就可以查一查,明白我需要做什么。我一点也不懂C语言,我正在努力学习。研究一下链表。您必须自行实施该列表,但这将是一次教育体验。:)
l.erase(pos)  // pos is an iterator at the row you'd like to remove