Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <ctype.h>
- #include <string.h>
- void soundex(const char s1[],char res[]){
- int i,k;
- int wordIdx=1;
- int bool1=0;
- int bool2=0;
- int bool3=0;
- int bool4=0;
- int bool5=0;
- int bool6=0;
- char nr1[] ={'b','f','p','v'};
- char nr2[] = {'c','g','j','k','q','s','x','z'};
- char nr3[] = {'d','t'};
- char nr4 = 'l';
- char nr5[] = {'m','n'};
- char nr6 = 'r';
- res[0]=toupper(s1[0]);
- for(i=1;i<strlen(s1);i++){
- for(k=0;k<strlen(nr2);k++){
- if(bool1==0 && s1[i]==nr1[k] && wordIdx<6 && sizeof(nr1)/sizeof(char)>k){
- bool1=1;
- res[wordIdx]='1';
- wordIdx++;
- }
- if(bool2==0 && s1[i]==nr2[k] && wordIdx<6 && sizeof(nr2)/sizeof(char)>k){
- bool2=1;
- res[wordIdx]='2';
- wordIdx++;
- }
- if(bool3==0 && s1[i]==nr3[k] && wordIdx<6 && sizeof(nr3)/sizeof(char)>k ){
- bool3=1;
- res[wordIdx]='3';
- wordIdx++;
- }
- if(bool4==0 && s1[i]==nr4 && wordIdx<6 ){
- bool4=1;
- res[wordIdx]='4';
- wordIdx++;
- }
- if(bool5==0 && s1[i]==nr5[k] && wordIdx<6 && sizeof(nr5)/sizeof(char)>k){
- bool5=1;
- res[wordIdx]='5';
- wordIdx++;
- }
- if(bool6==0 && s1[i]==nr6 && wordIdx<6 ){
- bool6=1;
- res[wordIdx]='6';
- wordIdx++;
- }
- }
- }
- if (wordIdx < 6){
- for(wordIdx=wordIdx;wordIdx<6;wordIdx++){
- res[wordIdx]='0';
- }
- }
- }
- int main(void){
- char s1[100];
- char res[5];
- int i;
- while(scanf("%s",s1)!=EOF){
- soundex(s1,res);
- for(i=0;i<6;i++){
- printf("%c",res[i]);
- }
- printf("\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement