1

現在、C で辞書プログラムを作成しています。stdin で空の文字列を検出するにはどうすればよいですか? 入力に ​​search_for を使用します。

void find_track(char search_for[])
{

        int i;
        for (i = 0; i < 5; i++) {
            if (strstr(tracks[i], search_for)){
            printf("The meaning of %s: %s\n",tracks[i], meaning[i]);

                break;
            } 
        }

        if (!strstr(tracks[i], search_for)) {
                printf("%s could not found in dictionary.\n",search_for);
            }   

}

繰り返しますが、 tolower 関数を使用して入力をローワーキャストするにはどうすればよいですか?

int main()
{
    int setloop =1;
    titlemessage();
    do {

        char search_for[80];
        char varchar;
        printf("Search for: ");
        fgets(search_for, 80, stdin);
          if(search_for[strlen(search_for)-1]=='\n')
          search_for[strlen(search_for)-1]='\0';

        find_track(search_for);
        printf("Press ENTER to start new search\n");
        //printf("Press 'q' to exit the program\n\n");

            varchar = getchar();
            if (varchar == 10) {    
                continue;
            }else {
                break;
            }
    } while (setloop = 1);
    return 0;

}

どんな方法でも大歓迎です。

4

2 に答える 2

1

C の stdin と tolower 関数で空の文字列を検出する

 fgets(search_for, 80, stdin);
 if(search_for[strlen(search_for)-1]=='\n')
      search_for[strlen(search_for)-1]='\0';


  if(strlen(search_for)==0)
   {
   // empty string, do necessary actions here
   }

char ch;

tolower()ch が大文字で、対応する小文字がある場合、ch を対応する小文字に変換します。そのような変換が不可能な場合、返される値は ch 変更されません。

   for(i = 0; search_for[i]; i++){
      search_for[i] = tolower(search_for[i]); // convert your search_for to lowercase 
    }  
于 2013-10-13T15:10:03.623 に答える