2016-03-19 6 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); 
} 

で「無効」関数への「メイン」変換できません。 voidmainの違いを理解してください。は、私はどのように私はプロトタイプを持つ<code>void</code>機能を使用するために<code>main</code>機能を変更することができ疑問に思って、文字列

+4

[The Definitive C Book Guide and List](http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list)をチェックして、初心者の本を探したり、チュートリアル。関数の作成方法を教えてくれます(実際には 'main'は普通の関数です)。その後、[良い質問をする方法](http://stackoverflow.com/help/how-to-ask)に進みます。そして最後に、あなたの問題をより具体的にするためにあなたの質問を更新してください。あなたが抱えている問題は何ですか?関数の作成方法は? (本を読んでください)「空白」とは何か異なる場所を意味するのか理解していますか? (また、本を読んでください。) –

+0

また、C++タグを削除する必要があります。 –

+0

[多くの類似の質問](http://stackoverflow.com/q/204476/1460794)があります。 – wally

答えて

2

C言語を深く理解する前に、コードを正しくインデントする方法を学ぶ必要があります。あなたのコードを読めるようにし、多くのばかげた間違いを防ぎます。

投稿したコードを再フォーマットして、どのように処理されたかを見てください。あなたの質問について

は、あなたはあなたがプロトタイプを与えられている別の関数に文字列を反転させるためのコードを移動することになっている:

#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); 
} 

機能は、機能を打破するためのプログラミング言語で基本ブロックされています小さな再利用可能なステップに変換します。関数内のoriginalStrreverseStrは、関数の引数の名前です。それらは関数のローカルです。 mainから渡された値は、同じ名前で構成されていますが、これは必須ではありません。良いチュートリアルの本からもっと学びましょう。

関連する問題