#include<string>与#include<cstring>
前者是C++中的标准string类,拥有强大的字符串操作,后者只是C里面的一个库,功能较弱。STL是标准类模板库,里面有很多的类,如:vector、map等等。都是一些方便编程的好东西。#include<cstring>时:string str("hello world!");cout<<str;error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or there is no acceptable conversion); 我想这里是没有自动转换成字符串的函数。若printf("%s",str); 编译通过,而运行时,到此处崩溃。是没有结束符的字符串打印导致的,原因还是同上面一样。