MFC 프로그래밍을 사용해 본 친구들은 CString 클래스에 깊은 인상을 받았을 것 같아요. 실제로 MFC의 CString 클래스는 정말 편리하고 사용하기 쉽습니다. 그런데 MFC 프레임워크를 벗어나면 사용하기 매우 편리한 클래스가 있을까요? 대답은 '예'입니다. 어떤 사람들은 MFC 프레임워크를 사용하지 않더라도 MFC에서 API를 사용하는 방법을 찾을 수 있다고 말할 수 있습니다. 구체적인 작업 방법은 이 문서의 끝부분에 나와 있습니다. 실제로 많은 사람들이 표준 C에서 문자열 클래스 사용을 무시할 수 있습니다. 표준 C에서 제공하는 문자열 클래스 함수도 매우 강력하여 프로젝트 개발 시 일반적으로 사용할 수 있습니다. 이제 출발점으로 삼아 다음과 같이 몇 가지 구체적인 사용법을 나열하겠습니다. 좋습니다. 헛소리는 그만두고 본론으로 들어가겠습니다.
표준 C에서 문자열 클래스를 사용하려면
을 포함해야 합니다.#include 98c455a79ddfebb79781bff588e7b37e// bbed3fed50f96ac7490cfc6a498c4bc5가 아니라 98c455a79ddfebb79781bff588e7b37e이라는 점에 유의하세요. .h가 있는 파일은 C 언어의 헤더 파일입니다.
std::string; 사용
std::wstring 사용;
또는
네임스페이스 std 사용
이제 각각 char 및 wchar_t에 해당하는 string/wstring을 사용할 수 있습니다.
string과 wstring의 사용법은 동일하며 아래 소개에는 string만 사용됩니다.
문자열 클래스 생성자:
string(const char *s); //用c字符串s初始化 string(int n,char c);//用n个字符c初始化
또한 문자열 클래스는 string s1과 같은 기본 생성자와 복사 생성자를 지원합니다. string s2="hello"; 생성된 문자열이 표현하기에 너무 길면 length_error 예외가 발생합니다.
문자열 클래스의 문자 연산:
const char &operator[](int n)const; const char &at(int n)const; char &operator[](int n); char &at(int n); //operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range异常,下标运算符[]不提供检查访问。 const char *data()const;//返回一个非null终止的c字符数组 const char* c_str()const;//返回一个以null终止的c字符串 int copy(char *s, int n, int pos = 0)const;//把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目
문자열의 특성 설명:
int capacity()const; //返回当前容量(即string中不必增加内存即可存放的元素个数) int max_size()const; //返回string对象中可存放的最大字符串的长度 int size()const; //返回当前字符串的大小 int length()const; //返回当前字符串的长度 bool empty()const; //当前字符串是否为空 void resize(int len,char c);//把字符串当前大小置为len,并用字符c填充不足的部分 string类的输入输出操作: string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。 函数getline(istream &in,string &s);用于从输入流in中读取字符串到s中,以换行符'\n'分开。
문자열 할당:
문자열 연결:
문자열 비교:
string input("hello,this is a test"); istringstream is(input); string s1,s2,s3,s4; is>>s1>>s2>>s3>>s4;//s1="hello,this",s2="is",s3="a",s4="test" ostringstream os; os<<s1<<s2<<s3<<s4; cout<<os.str();
以上就是对C++ string类的一个简要介绍。用的好的话它所具有的功能不会比MFC中的CString类逊色多少,呵呵,个人意见!