今天刷题,刷着刷着发现了一个问题,我好想对string这个了解不是很深,我之前是把它跟C语言中的char类型总是分不清,所以今天题也不刷了,试着了解它们俩到底有什么区别。
在C语言中char是以'\0'结尾的,这作为我们循环字符串时的一个结尾标志,那么string是否也以'\0'结尾呢?
首先我尝试打印,%s打印是以'\0'为结尾标志的而进行打印的,为什么会乱码???
printf只能输出自带的char*类型或者其他的数据类型,但是String类型不是自带的类型,所以不能直接输出。
然后
看起来是没有'\0'滴,
但是,其实是有‘\0’的,因为是根据编译器的不同!!!!!!!!!,有的会加,有的不会。
但是新的C++标准C++11里面规定std::string一定是以'\0'结尾
由此看来我的vs2012有点low了,没有给我加'\0'。