ベース→テキスト
コンピュータエンジニアリング専門に必須の多機能オールインワンパッケージOnlne-C. 10.テキスト
文字とバッファ文字列を処理する際には、バッファの概念がよく用いられる. バッファは、特定のデータを一時的に格納するために使用される. Cプログラムのデフォルトでは、ユーザーによる操作なしにバッファ処理I/Oが自動的に使用されます. 文字列は、その名の通り文字の配列です. 文字列には、コンピュータメモリ構造の最後の空の値が含まれます.(第11部、0部)
のNull値は、文字列の終了悲鳴に使用されます. pirntf()関数を実行すると、コンピュータは内部がNULLに遭遇するまで出力されます. 文字列でポインタを使用すると、ポインタには特定の文字列のアドレスが格納されます.
次のコードは、「HelloWorld」文字列を読み取り専用文字列としてメモリ領域に格納し、その位置を処理します.これらの文字列を「文字列文字」と呼びます.これはコンパイラ自身がメモリアドレスを決定します. 文字列I/Oを実行します.scanf()関数はスペースに遭遇するまで入力され、get()関数はスペースを含む行を入力されます. get s()を使用すると、範囲を超えた場合、ランタイムエラーが直ちに発生します.
文字列で使用されるget s()または他の文字列関数は、C 11というC言語標準で使用できます。これは広く実装されている標準ではなく、主にMicrosoft VisualStudioで使用されているようです。mac osの場合、使用できないように見えます。私のような状況(今)C言語はそんなに急いでいないので、整理して行きました。
文字とバッファ
入力バッファの一般的なエラー
#include <stdio.h>
int main(int argc, const char * argv[]) {
int a;
char c;
scanf("%d", &a);
printf("%d\n", a);
scanf("%c", &c);
printf("%c\n",c);
return 0;
}
パソコンの改行や空白などはAskyコードで管理されていますが、数字を入力してEnterを押すと数字の値がaに入り、後ろのスペースが改行そのもののEnterとなり、文字として認識されて入力を受け付けます.すなわち,aには入力された数字が含まれているが,cの改行文字は文字として認識される.この場合、残りの入力バッファをクリアする必要があります.#include <stdio.h>
int main(int argc, const char * argv[]) {
int a;
char c;
scanf("%d", &a);
printf("%d\n",a);
int temp;
// 한 자씩 받아서 파일의 끝이거나(EOF) 개행문자를(여기서는 \n) 만나면 입력을 멈추므로 항상 입력버퍼를 비운다.
while((temp = getchar()) != EOF && temp != '\n'){}
scanf("%c", &c);
printf("%c\n",c);
return 0;
}
文字列
文字列とポインタ
次のコードは、「HelloWorld」文字列を読み取り専用文字列としてメモリ領域に格納し、その位置を処理します.これらの文字列を「文字列文字」と呼びます.これはコンパイラ自身がメモリアドレスを決定します.
#include <stdio.h>
int main(int argc, const char * argv[]) {
char *a = "Hello World";
printf("%s\n", a);
return 0;
}
また、配列とポインタは置換可能であるため、ポインタを使用して文字列を宣言したり、既存の配列のように処理したりすることができます.#include <stdio.h>
int main(int argc, const char * argv[]) {
char *a = "Hello World";
printf("%s\n", a);
printf("%c\n",a[1]);
printf("%c\n",a[4]);
printf("%c\n",a[8]);
return 0;
}
文字列I/O関数
#include <stdio.h>
int main(int argc, const char * argv[]) {
char a[100];
gets(a);
printf("%s\n", a);
return 0;
}
C 11規格から,バッファサイズを厳格に遵守するget s()関数を追加した.Reference
この問題について(ベース→テキスト), 我々は、より多くの情報をここで見つけました https://velog.io/@dlawogus/기초-문자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol