c - 如何读取和比较 C 中的字符 255

标签 c string compare character eof

我需要编写一段代码来搜索文件中字符串的所有分区。最近,我的老师让我在具有相同字符串的文件中搜索字符串 (char)255(char)255。问题是我无法阅读这些字符,而且很糟糕,我无法将这些字符与 EOF 进行区分或比较;我在文件中搜索给定字符串的代码是:

//problema 14

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[]) {

    char b;
    int k=0;
    if(argc!=3) {
        fprintf(stderr,"Utilizare: %s fisier sir\n",argv[0]);
        return 1;
        }  
    if(argv[2][0]=='\0'){
        fprintf(stderr, "String vid\n");
        return 1;
    }

    FILE *f;
    f=fopen(argv[1],"r");
    if (!f)
    {
        perror(argv[1]);
        return 1;
    }


    int i=0;

    while((b = fgetc(f))!=EOF)
    {

        if(b==argv[2][i]) i++;
        else {
            fseek(f,-i, SEEK_CUR);
            i=0;
        }

        if(argv[2][i]=='\0'){
            k++;
            fseek(f,-i+1, SEEK_CUR);
            i=0;
        }



    }
    printf("\nSULFUS %d APPEARANCES\n",k);
    return EXIT_SUCCESS;
}

我可以用这段代码做什么来处理 (char)255 个字符的比较字符串?

最佳答案

诀窍是意识到 fgetc 返回一个 int

所以,把b的数据类型改成int吧!

关于c - 如何读取和比较 C 中的字符 255,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26804125/

相关文章:

c - 当我尝试释放时检测到堆损坏(void * key)

c++ - 优化例程代码示例

C:修复程序故障

python - "Less/greater than"N维和(N-k)维numpy数组的比较

c++ - 将代码从 C++ 转换为 C : `a+b > b+a` where a and b are `string`

c++ - 如何覆盖 printf 输出的先前字符串

string - 将单元格日期转换为 datenum,将 null 转换为 NaN

python - MongoDB 和 PyMongo - 如何在单个文档字段中连接字符串

actionscript-3 - ActionScript比较数组

database - Access 比较数据库架构