English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 문서에서는 C에서 문자열을 처리하는 방법을 배웁니다. 그들은 선언, 초기화 및 다양한 입력과 출력에 사용됩니다./출력 작업.
문자열은 문자의 집합입니다. C ++프로그래밍 언어에서 일반적으로 두 가지 유형의 문자열을 사용합니다:
문자열 클래스 객체로서의 문자열(표준 C ++도서관 문자열 클래스)
C 문자열(C 스타일 문자열)
C 프로그래밍에서, 문자 집합은 배열 형태로 저장되며, C ++프로그래밍도 이 형식을 지원합니다. 따라서 이는 C 스타일 문자열(C-string)입니다.
c -string은 null 문자로 끝나는 char 타입의 배열이며, 즉 \0 (null 문자의 ASCII 값은 0입니다).
char str[] = "C++";
위의 코드에서 str은 문자열이며, 다음을 포함하고 있습니다4개의 문자가 있습니다.
하지만 "c++”에 있습니다3개의 문자가 있지만 null 문자 \0이 문자열의 끝에 자동으로 추가됩니다.
char str[4] = "C++"; char str[] = {'C','+','+','\0'}; char str[4] = {'C','+','+','\0'};
배열과 마찬가지로, 문자열에 할당된 모든 공간을 사용하지 않아도 됩니다. 예를 들어:
char str[100] = "C++";
C ++프로그램이 사용자가 입력한 문자열을 표시합니다.
#include <iostream> using namespace std; int main() { char str[100]); cout << "입력된 문자열: "; cin >> str; cout << "당신이 입력한 것은: " << str << endl; cout << "\n다른 문자열을 입력하세요: "; cin >> str; cout << "당신이 입력한 것은: " << str << endl; return 0; }
출력 결과
문자열을 입력하세요: C++ 당신이 입력한 것은: C++ 다른 문자열을 입력하세요: Programming is fun. 당신이 입력한 것은: Programming
참고로, 두 번째 예제에서는 "Programming"만 표시되고, "Programming is fun."는 표시되지 않습니다.
이유는 추출 연산자 >>와 C 언어의 scanf() 메서드와 마찬가지로 공백 " "이 종료 문자로 간주된다는 것입니다.
C ++프로그램이 사용자가 입력한 전체 행을 읽고 표시합니다.
#include <iostream> using namespace std; int main() { char str[100]); cout << "문자열을 입력하세요: "; cin.get(str, 100); cout << "당신이 입력한 것은: " << str << endl; return 0; }
출력 결과
문자열을 입력하세요: Programming is fun. 당신이 입력한 것은: Programming is fun.
要读取包含空格的文本,可以使用cin.get函数。该函数有两个参数。
공백을 포함한 텍스트를 읽기 위해 cin.get 함수를 사용할 수 있습니다. 이 함수는 두 개의 매개변수를 가집니다
첫 번째 매개변수는 문자열의 이름(문자열의 첫 번째 요소의 주소)이며, 두 번째 매개변수는 배열의 최대 용량입니다10위 프로그램에서, str은 문자열의 이름입니다
C에서 문자열 객체 ++또한, 문자열을 저장하기 위해 문자열 객체를 생성할 수 있습니다
char 배열과 달리, 문자열 객체는 고정된 길이가 없으며 필요에 따라 확장할 수 있습니다
#include <iostream> using namespace std; int main() { //문자열 객체를 선언합니다 string str; cout << "입력된 문자열: "; getline(cin, str); cout << "당신이 입력한 것은: " << str << endl; return 0; }
출력 결과
입력된 문자열: Programming is fun. 당신이 입력한 것은: Programming is fun.
이 프로그램에서, str은 문자열을 선언했습니다. 그런 다음 사용자에게 문자열을 요청했습니다
cin>> 또는 cin.get() 함수를 사용하지 않고도 getline()을 사용하여 입력의 텍스트 행을 가져올 수 있습니다
getline() 함수는 입력 스트림을 첫 번째 매개변수로, cin과 str을 저장할 위치로 사용합니다
문자열은 유사한 방식으로 함수에 전달됩니다배열도 함수에 전달될 수 있습니다。
#include <iostream> using namespace std; void display(char *); void display(string); int main() { string str1; char str[100]); cout << "입력된 문자열: "; getline(cin, str1); cout << "다른 문자열을 입력하세요: "; cin.get(str, 100, '\n'); display(str1); display(str); return 0; } void display(char s[]) { cout << "입력된 문자열 배열은: " << s << endl; } void display(string s) { cout << "입력된 문자열은: " << s << endl; }
출력 결과
입력된 문자열: Programming is fun. 다른 문자열을 입력하세요: Really? 입력된 문자열은: Programming is fun. 입력된 문자 배열은: 정말로?
위의 프로그램에서는 두 개의 문자열을 입력하도록 요청합니다. 이 문자열들은 각각 str과 str에 저장됩니다.1에서, str은 char 배열이며, str1는 문자열 객체입니다.
그래서, 우리는 두 개의 display() 함수가 있습니다. 이 함수들은 문자열을 문자열에 출력합니다.
이 두 함수는 매개변수에 유일한 차이가 있습니다. 첫 번째 display() 함수는 char 배열을 매개변수로 하며, 두 번째 함수는 string을 매개변수로 합니다.
이 과정은 함수 오버로드로 불립니다. 관련 내용을 알아보세요.함수 오버로드의더 많은 정보.