C/C++ C case çok karakter kullanma

TH6

Decipat
Katılım
9 Temmuz 2022
Mesajlar
791
Çözümler
20
Arkadaşlar merhaba. Ben bu kodda case yapısında daha fazla karakter kullanmak istiyorum. Yani case 'C': yapısında sadece C değil Cik yazılıp programdan çıkılmasını istiyorum. Ancak bunu yaptığımda case yapısında bir çok karakter kullanamazsın diyor. Ben kullanmak istiyorum. Bir yolu var mı? Kod:

Kod:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>


int main() {
    setlocale(LC_ALL, "Turkish");

    int msekle,msazalt,ah,mh,th,fa,zy,islem,wh;
    char isimler;
    wh=8
   
    while(wh=8)
    {
        printf("Çalışan Maaşı Düzenleme Uygulamasına Hoşgeldiniz.\nÇalışanları Seçmek İçin Baş Harflerini Kuallanın.\nÇıkmak İçin C Yazın: ")
        scanf("%s",isimler);
        switch(isimler)
        case 'C':
            wh=7; break;
    }
       
   
   
   
    return 0;
}
 
Ne demek istediğini tam anlamadım, ama böyle bir şey mi istiyorsun?
C:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>


int main()
{
    setlocale(LC_ALL, "Turkish");

    int msekle,msazalt,ah,mh,th,fa,zy,islem,wh;
    char isimler;
    wh=8
  
    while(wh=8)
    {
        printf("Çalışan Maaşı Düzenleme Uygulamasına Hoşgeldiniz.\nÇalışanları Seçmek İçin Baş Harflerini Kuallanın.\nÇıkmak İçin C Yazın: ")
        scanf("%s",isimler);
        switch(isimler)
        {
            case 'c':
            case 'C':
                wh=7; break;
        }
    }
    return 0;
}
 
Hayır hocam. Mesela Case 'C': dediğimizde C yazıldığında bunu yap demek. Ancak case'cik': denediğimde çok karakter kullanamazsınız diyor ve böyle kullanmama izin vermiyor. Çalışsa bile cik yazdığımda çalışmıyor. Bende case'cik' komutunun çalışmasını istiyorum.
 
switch case numerik girdi destekler ama C kullaniyoruz, hile yapabiliriz.

Ornek bir kod yazdim incelersin. Burada metni sayisal olarak kodluyoruz ardindan komutumuzun sayisal karsiligini alip switch case yapimizda kullaniyoruz, gayet basit, cok kullanisli oldugunu soyleyemem aklima boyle bir yontem geldi.

C:
#include <stdio.h>
int convert(char * text) {
    int temp = 10000000;
    for(int i=0; text[i] != '\0'; i++) {
        temp += text[i]*(i+5);
    }
    return temp;
}
int main() {
    char * metin = "test";
    printf("test'in sayisal kodlamasi: %d\n", convert(metin));

    char input[1024];
    printf("komut gir:");
    scanf(" %s", input);
    switch ( convert(input) )
    {
    case 10002919:
        printf("test girildi");
        break;
    
    default:
        break;
    }
    return 0;
}
}
 
Son düzenleme:
En basit yöntem veriyi string türünde çekip strcmp ile eşleştirirsin.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…