[Cベース-文字列出力と入力]



文字列の出力と入力


整数や実数などの数字しか使われていませんが、ハングルや英語などの文字はどう使いますか?
リンクリソースクリーンアップテーブル
charは文字と数字を表すデータ型で、サイズは1バイト、合計256文字で、-128から127までです.数字(整数型)の文字の使い方についての疑問は以下の通りです.
文字を数字で対応させて使用します.例えば、アルファベット「a」は97という数字に対応します.このようにして各文字を数字と一致させ、表現する方法です.これをアスキーパスワードといいます.

上の表は、0から127のマッチングを示すAskyコード表です.
256という限られた数字のため、Unicode(UNICode)が現れた.Unicodeは文字を1バイトではなく2バイトに処理し、256倍の65536文字を表すことができる.これはこれまでの様々な言語や特殊文字を示しているが、まだ2万個ほどの種類が残っている.
#include <stdio.h>

int main()
{
  char ch = 'a';
    
  printf("%d\n", ch); // a 와 매칭되는 97 출력
  printf("%c\n", ch); // a 출력
  
  return 0;
}

しゅつりょく


97
a

出力の説明


1番目の出力は%dで「a」を表し、2番目の出力は出力文字の%cでaを表す.97は「a」のアスキーコードです.
#include <stdio.h>

int main()
{
  char ch = 'ab';
    
  printf("%d\n", ch);
  printf("%c\n", ch);
  
  return 0;
}

しゅつりょく


98
b

出力の説明


char資料型は1バイトで、1文字しか含まれません.abに最後に入力されたbのみがch変数に含まれます.

変数に複数の文字を含める


整数型をいくつか入れたいのであれば、int型配列を作るように、数文字入れたいのであればchar型配列を作ることができます.
これまでは逐字出力であったため%cを用いたが、複数文字を含む文字列を出力する場合には%sを用いることができた.
#include <stdio.h>

int main()
{
  char ch[5] = "abcd";
  
  printf("ch 는 %s", ch);
  
  return 0;
}

しゅつりょく


chはabcd

出力の説明


abcdが写っているのが見えますが、列の大きさは4文字で、4ではなく5を占めています.ユーザーが望むのはabcd全体の出力かもしれませんが、コンピュータが本当に認識している場合は、どのくらいの長さがあるかを教える必要があります.しかし、印刷されるたびに、この配列が4文字なのか5文字なのかを教えてくれるのは面倒です.
だから最後の残りの位置に0,NULL,0を入れます.三つの字は同じで、終わりの言葉を指します.
このエンドマークで、コンピュータがどこに出力するかを教え、正常に出力します.
#include <stdio.h>

int main()
{
  char ch[7] = { 'a', 'b', 'c', 'd', 0, 'e', 'f' };
  
  printf("ch 는 %s", ch);
  
  return 0;
}

しゅつりょく


chはabcd

出力の説明


上のコードを見るとabcdにしか出力されていないことがわかります.
文字列に値を代入する場合は、宣言時に前に書いたコードのようにすぐに値を割り当てる必要があります.宣言後に値を置換しようとすると、エラーが発生します.宣言後にコードから値を置換する場合は、次の操作を行います.
ch[0] = 'a';
ch[1] = 'b';
表示されるように、1つずつ保存してください.

テキスト入力の受信

#include <stdio.h>

int main()
{
  char ch[201];
  
  printf("200 자 이내로 입력해주세요 : ");
  scanf("%s", &ch);
  printf("%s", ch);
  
  return 0;
}

しゅつりょく


200文字以内を入力してください:fredkeemhous
fredkeemhaus

出力の説明


scanfを使用して入力を受け入れる場合は、&を貼り付ける必要があります.住所を伝えるから.
ただし,文字列配列については,&を用いる必要はなく,変数名を記入するだけでよい.