如何在文件中查找非重复的字符串

时间:2017-08-28 13:48:08

标签: c string

我遇到了问题,我需要找到代码在文件中的显示方式。 问题是在这个文件中代码可能出现不止一次,我只需要考虑一个。

我尝试编写一个计算代码在文件中的方式的函数(丢弃重复的代码):

int calcolo (struct sistema *sis,int l) {
    char nome[l][6];
    int i=2,a=1,h;


    strcpy(nome[1],sis[1].codice);
    h=1;

    while(i<l) {
        for(a=1;a<=h;a++) {
            if(strcmp(nome[a],sis[i].codice)==0) {
                i++;    
                break;
            }   
        }

        h++;
        strcpy(nome[h],sis[i].codice);
        i++;    

    }
    return h;
}

输入文件是:

2015-03-03 07:01 X100 8.1
2015-03-04 08:02 X100 15.2
2015-03-18 13:15 X100 31.9
2015-08-02 13:10 B209 32.0
2015-08-15 12:01 B209 35.4
2016-01-02 10:44 A101 8.1
2016-02-02 15:41 X100 13.2

如果我不认识任何重复的字符串,我不知道如何“绕过”while的第二部分。 所以结果是3表示树代码(X100 B209 A101),但我收到5,为什么?

2 个答案:

答案 0 :(得分:0)

我找到了答案,我知道这不是更好的使用goto的方法,但我需要跳过代码的第二部分,我已经“解决”了它:

int calcolo (struct sistema *sis,int l) {
    char nome[l][6];
    int i=2,a=1,h;


    strcpy(nome[1],sis[1].codice);
    h=1;

    BACK:   
         while(i<l) {
             for(a=1;a<=h;a++) {
                 if(strcmp(nome[a],sis[i].codice)==0) {
                     i++;
                     goto BACK; 
                 }  
             }
             h++;
             strcpy(nome[h],sis[i].codice);
             i++;   

         }
    return h;
}

输出: 获得3 - 预期3

我宁愿不使用goto然后如果有人有其他解决路径,请告诉我,谢谢大家

答案 1 :(得分:0)

将每个新字符串放入一个集合中。然后就像这样使用:

   var request = require('request');

    var link = "https://nodejs.org/";

    var proxyUrl = "http://" + user + ":" + password + "@" + host + ":" + port;

var proxiedRequest = request.defaults({'proxy': proxyUrl});

  proxiedRequest(link , function (error, response, body) {

      if(error){
        console.log('Err: '+ error);
        return false;
      }

    if(response.statusCode == 200 || response.statusCode == 201 || response.statusCode == 202){
      console.log(link + ' is up!!');
      return false;
    }

    if(response.statusCode == 301 || response.statusCode == 302){
      console.log(link + ' is redirecting us!!');
      return false;
    }

    if(response.statusCode == 401){
      console.log("you are unauthorized to " + link);
      return false;
    }else{
      console.log(link + ' is down!!');
    }

    });