string库
- #include < string >
string constructors
负责字符串的截取,复制等操作eg. string(5,‘c’);
string operators
在=操作符时遇到一个问题
c++标准库中是这样写的
Furthermore, strings can be assigned values that are other strings, character arrays, or even single characters. The following code is perfectly valid:
char ch = 'N';
string s = ch;
且,string确实有相关构造函数(第三个)
string& operator=( const string& s );
string& operator=( const char* s );
string& operator=( char ch );
但是我用程序跑时
#include <iostream>
#include <string>
int main()
{
char b='b';
std::string s=b;
std::cout<<s<<std::endl;
return 0;
}
报错:
error: conversion from 'char' to non-scalar type 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}' requested|
然后我修改代码如下:
#include <iostream>
#include <string>
int main()
{
char a[]="abcd";
char b='b';
std::string s;
s=b;
std::cout<<a<<std::endl;
std::cout<<s<<std::endl;
return 0;
}
问题解决
嗯,,,,,不懂为什么会这样