【发布时间】:2019-03-20 09:02:05
【问题描述】:
尝试在 C 中创建代码。首先,我不能使用 string.h 库或任何其他类似的库。输入将来自命令行,如:./program 模式文件,我已经成功打开文件并将文件的行写入数组,但现在我必须将模式 a get 与文件中的行进行比较。如果有写模式,我必须打印整行。
对于我使用的输入:
char array[1000]; // hope 1000 will be enough
char *pattern= argv[1];
对于我使用的扫描:
while (fscanf(f,"%c", &temp)!= EOF){
if (temp=='\n'){
Algoritm...
}
add to array( array[i++]=temp) - already works`
如果我得到行尾,我不会当'\n'出现时,我需要启动算法来确定小字符串是否在行中。
我的问题:
如何比较这些“字符串”?有效率的?
如何知道我作为输入得到的图案的大小? (我想我需要那个来做算法)
【问题讨论】:
-
扫描
%c也效率不高,使用fgetc -
至于“我不能使用
<string.h>”...你知道你可以使用什么功能如果你可以使用它,即strstr,然后谷歌搜索 "strstr c implementation site:stackoverflow.com" -
如果您知道可以使用哪个函数,那么使用它的名称就可以很容易地找到有关如何使用它的教程和示例。例如搜索
strstr c example或strstr c tutorial。 -
我猜,您并不真正了解建议的内容。如果您搜索给定函数的实现,您可以将该函数的您自己的版本添加到您的项目中。不涉及图书馆。