我正在编写一个程序,我将来自文本文件的字符串插入到数组中。我已经编写了insert函数,但我很困惑如何按字符串运行文本文件字符串。
本质上在main()函数中程序需要设置一个数组,然后运行认为文件打开并在文件中的每个字符串上使用insert函数。那么我将如何获取每个字符串,在insert函数中使用它,然后转到文件中的下一个字符串。
如果需要更多说明,请告诉我!感谢。
更新了插入和主要功能:
insert函数将字符串单词插入Table,后者应按排序顺序维护。如果成功插入字符串,则返回n + 1;否则返回n。它使用二进制搜索。
int insert(char *word, char *Table[], int n){
int low = 0;
int high = n;
int mid;
int index = -1;
int k;
while (low < high)
{
mid = low + (high - low)/2;
if (strcmp(Table[mid], word) == 0)
{
index = mid;
break;
}
else if (strcmp(Table[mid], word) < 0)
low = mid + 1;
else
high = mid - 1;
}
if (index != -1 && index < n)
return n;
for (index = 0; index < n; index++)
{
if (strcmp(Table[index], word) < 0)
continue;
else
break;
}
for (k = n-1; k >= index; k--)
{
Table[k + 1] = Table[k];
}
Table[index] = strdup(word);
return n + 1;
}
主:
命令行应该是这样的&#34; ./ concordance 15&lt; input.txt中&#34;
int main(int argc, char *argv[]){
FILE *fp = fopen(argv[3], "r");
int n = atoi(argv[1]);
int insert;
char *Table[n];
我陷入了主要功能所以它不完整。 也是一个&#34;字&#34;在这个文件中,我用字符串表示,用空格,句号,逗号,分号,冒号,感叹号的标点字符分类 点,双引号,问号和换行符。但撇号仍然被认为是这个词的一部分。
答案 0 :(得分:0)
我建议先使用MyCollection
打开文件,然后使用FILE
读取该行:
fgets
然后使用char* str;
FILE* fp;
fp = fopen("YOUR_FILE_NAME", "r"); // open for reading
if (fp == NULL)
{
// say some error message
return -1;
}
fgets(str, SOME_LARGE_NUMBER, fp);
:
strtok
或者通过循环遍历char* tok;
do {
tok = strtok(str, " ");
// HANDLE STRING <-- This is where you would use your insert thing
} while(tok != NULL);
字符串中的每个字符来手动解析字符串,因为它有点长,所以我不会写。{/ p>