如何从C中的行中获取第一个和最后一个单词?

福克斯

我有代码问题。我想从txt文件的每一行中取出第一个和最后一个单词。我现在写了这段代码:

void StartEnd(char * word)
{
    FILE* fp;
    fp = fopen("linie.txt", "r");
    if (fp == NULL) {
      printf("! ");
      return;
    }
    char store[MAX_LINE];
    
    while (fgets(store, MAX_LINE - 1, fp)){
    char * FirstWord = strtok(store," ");
    char * LastWord;  
    char * token = strtok (store," ");
    while (token != NULL){
    LastWord = token;
    token = strtok (NULL," ");
}
    printf("%s\n",LastWord);
    }
    
    fclose(fp);
 
}

它适用于最后一句话,但前提是我不将 FirstWord 与 strtok 一起使用并且我不知道为什么:(。我将不胜感激。谢谢!

午睡

在第一次调用时,该函数需要一个 C 字符串作为 str 的参数,其第一个字符用作扫描标记的起始位置。在随后的调用中,该函数需要一个空指针,并使用最后一个标记结束后的位置作为新的扫描起始位置。

在对 的后续调用中strtok,您应该传递一个NULL指针。这样做可以使函数正常工作:

void StartEnd(char * word)
{
    FILE* fp;
    fp = fopen("linie.txt", "r");
    if (fp == NULL) {
      printf("! ");
      return;
    }
    char store[MAX_LINE];

    while (fgets(store, MAX_LINE - 1, fp)){
        char * FirstWord = strtok(store," ");
        char * LastWord;
        char * token = strtok (NULL, " ");
        while (token != NULL){
            LastWord = token;
            token = strtok (NULL," ");
        }
        printf("%s\n",LastWord);
        printf("%s\n",FirstWord);
    }
    fclose(fp);
}

请记住,fgets读取n-1字符或直到遇到一个newlineEOF字符。然而,换行符也被视为有效字符并存储在字符串中。这意味着LastWord可能以newline字符结尾要解决这个问题,请传递" \n"而不是" "strtok。然后换行符和空格都被视为分隔符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取groupby中的第一个和最后一个值

MongoDB在聚合查询中获取第一个和最后一个文档

如何从给定的数值月份中获取月份的第一个和最后一个日期PHP

如何获取ArangoDB AQL查询中的第一个和最后一个条目

熊猫从组中获取列的第一个和最后一个值

使用RLE从组中获取第一个和最后一个值

如何从命令输出中获取第一行最后一个单词的值

如何从pyspark的dataframe列中获取第一个值和最后一个值?

如何在Android Datepicker中获取月份的第一个和最后一个日期

如何获取javascript中特殊字符之间的第一个和最后一个单词或字符?

如何在PostgreSQL中的一行上获取第一个和最后一个值

如何使用SQL获取列中每个分区的第一个和最后一个值

如何删除列中的第一个单词和最后一个单词?

如何在javascript中获取对象的第一个,最后一个和其他值?

如何获取文件中的第一个和最后一个日期

从解析的数组中获取第一个和最后一个日期

如何从输入短语中获取单词,然后使用C按字母顺序获取第一个单词和最后一个单词?

c中按字母顺序排列的第一个和最后一个单词

如何选择<tr>中的第一个和最后一个<td>?

在字符串的第一个和最后一个单词中获取单词

如何获取特定样式的jquery中的第一个和最后一个值?

删除行中第一个和最后一个元素的填充

Excel:获取行中第一个和最后一个非零单元格的位置

MySql 从查询中获取第一个和最后一个结果

如何从双向链表中删除第一个和最后一个节点?

如何从数组中获取最多 3 个第一个和最后一个项目

如何在java中获取arraylist中每个单词的第一个和最后一个字母

谷歌表格获取行中第一个和最后一个彩色单元格的地址

如何获取一行Python中的第一个单词