2016-03-19 36 views
-6
#include <stdio.h> 
#include <string.h> 

typedef char String[80]; 

int main() { 
    String originalStr = "mail"; 
    String reversedStr; 
    int index; 
    int len = strlen(originalStr); 

    for (index = 0; index < len; index++) { 
     reversedStr[index] = originalStr[len - index -1]; 
    } 
    reversedStr[index] = '\0'; 

    printf("Original is %s, reversed is %s\n", originalStr, reversedStr); 
} 

ile 'hükümsüz' işlevine 'Ana' dönüştürülemez void ve main arasındaki farkı anlayın.dize ben prototip ile <code>void</code> işlevi kullanmak <code>main</code> fonksiyonunu nasıl değiştirebileceğinizi merak ediyorum

+4

[Kesin C Kitap Rehberi ve Listesi] 'ni (http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list) kontrol etmeniz ve iyi bir başlangıç ​​kitabını veya öğretici. Fonksiyonların nasıl oluşturulacağını size söyleyecektir (aslında bildiğiniz gibi, 'ana' sadece normal bir işlevdir). Daha sonra [nasıl iyi sorular sorulur] konusuna devam edin (http://stackoverflow.com/help/how-to-ask). Ve sonunda sorunuzu sorununla daha spesifik olacak şekilde güncelleyin, yaşadığınız problem tam olarak nedir? Fonksiyonlar nasıl oluşturulur? (Bir kitap okuyun.) Farklı yerlerde ne anlama geldiğini anlayın. (Ayrıca bir kitap okuyun.) –

+0

Ayrıca, C++ etiketini de kaldırmalısınız. –

+0

[Benzer sorular] vardır (http://stackoverflow.com/q/204476/1460794). – wally

cevap

2

C diline daha önce gitmeden önce kodunuzu doğru şekilde girmeyi öğrenmelisiniz. Kodunuzu okunabilir hale getirecek ve birçok aptal hataları önleyecektir.

Gönderdiğiniz kodu yeniden biçimlendirdim, nasıl yapıldığına bakın.

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

typedef char String[80]; 

void reverseString(String originalStr, String reversedStr) { 
    int index; 
    int len = strlen(originalStr); 

    for (index = 0; index < len; index++) { 
     reversedStr[index] = originalStr[len - index - 1]; 
    } 
    reversedStr[index] = '\0'; 
}   

int main(void) { 
    String originalStr = "mail"; 
    String reversedStr; 
    reverseString(originalStr, reversedStr); 
    printf("Original is %s, reversed is %s\n", originalStr, reversedStr); 
} 

Fonksiyonlar işlevselliği yıkmak için programlama dillerinde temel blok şunlardır: Sorunuza gelince

, size prototip verildiği için ayrı bir işleve dize ters kodunu taşımak gerekiyor yeniden kullanılabilir küçük adımlar halinde. İşlevdeki originalStr ve reverseStr öğelerinin işlev argümanlarının adları olduğunu unutmayın. Onlar işlevsellik için yereldir. main'dan alınan değerler, yapım ile aynı ada sahip olur, ancak bu gerekli değildir. İyi bir öğretici kitaptan daha fazla bilgi edinin.