文字列の入出力要約(配列文字列)

3084 ワード

  • 声明
  • char str[maxn]      //maxn   
    

    charタイプ配列宣言文字列は、そのサイズが与えられ、その後、サイズが固定される必要があります.
  • 入力
  • ①cinとscanf()は、いずれも「スペース」、「TAB」、「リターン」に遭遇して終了し、1つの単語を一度に読み出す.
    #include
    scanf("%s",str);
    
    #include
    cin>>str;
    

    ②cin.get(str,Size)は、リターンまたは満読み(Size-1)文字の終了に遭遇するが、リターンは読み込まれず、リターンはバッファに残され、第Size文字も読み込まれない
    #include
    cin.get(str,maxn);   //  maxn-1   ,       '\0'
    

    Sizeには'0'が含まれているので、Size-1文字のほかcinを読み出す.get(パラメータなし)の使用はgetchar()に等しい.
    ③cin.getline(str,Size,End Character)は、3番目のパラメータは通常省略されますが、省略するとデフォルトでは'0'がEnd Characterになります.
    cin.getlineは、リターンが停止した後、リターンをキャッシュ領域に残すのではなく、リターンを「0」に読み込み、置き換えます.つまり、1行を完全に読み込みますが、文字列内にリターンはありません.終了文字も読み込まれますが、その後は'0'に置き換えられます.
    ④C言語のgets()とfgets()については、以下を参照してください.https://www.cnblogs.com/qingergege/p/5925811.html
  • 出力文字列の出力は簡単で、一般的には提供されたヘッダアドレスから'0'まで終了します.
  • #include
    printf("%s",str);
    
    #include
    cout<<str;
    

    Ps.個人的には、プログラム設計コンテストでは、単語を1つずつ読み込むのは当然cinとscanf()であり、1行を読み込む必要がある場合はcinであると考えている.getline()のほうがいいです.cin.getline()はこの行のリターンをバッファに残すことはありませんが、cin.getline()が終了文字を読み込み削除するので、3番目のパラメータ(終了文字)を追加しないほうがいいです.
    参考資料:http://www.cnblogs.com/flatfoosie/archive/2010/12/22/1914055.html