2017-05-13 29 views
0

假设我有一组电话号码:char numbers[4][9] = {"555555534", "112221222", "512221222", "355555534"};我需要找到与特定模式匹配的电话号码。查找与特定位置上的另一个字符串匹配的字符串,忽略其他字符串(C字符串)

例如,我能找到一个数:

  1. 5********与一个5开始,的数字,其余可以忽略不计(不要紧,他们是真正)
  2. **2*****的第三个数字是2,以及数字其余可以忽略不计(不要紧,他们是真正)

我应该查找的模式由用户给出。我写了一个简单的测试,但不知何故,我在实现number_matches函数时遇到了问题。

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

int main() 
{ 
    int i,j; 

    char *findmeplz = "5********"; 
    char numbers[4][9] = {"555555534", "112221222", "512221222", "355555534"}; 

    for (i=0; i<4; i++) 
    { 
     if(number_matches(numbers[i], findmeplz)) 
     { 
      printf("number found on position %d\n", i); 
      break; 
     } 
    } 

    return 0; 
} 
+0

份额,你一直在努力,实现你的'number_matches'功能。 – OmG

+0

@OmG:事情是,我不知道如何实现它 – mirx

回答

1

的功能可以是这样的:

int number_matches(char* number, char* pattern) 
{ 
    int i = 0, flag = 1; 
    for(i = 0; i < strlen(pattern); i++) 
    { 
     if(pattern[i] != '*') 
     { 
      if(pattern[i] != number[i]) 
      { 
       flag = 0; 
       break; 
      } 
     } 
    } 
    return flag; 
} 
相关问题