我知道getline(cin,_string);
完美无缺
但这不是:
char* _chArr = new char;
getline(cin,_chArr);
即使这个alson不起作用:
char* _chArr = new char[30];
getline(cin,_chArr);
char*
不是字符串??
答案 0 :(得分:5)
不是char *是一个字符串
不,它是指向char
的指针,就是这样。函数std::getline
执行一些很酷的东西(扩展字符串和所有内容),这些内容在char *
上无法轻松完成。
答案 1 :(得分:2)
从逻辑上思考它。 char *只是指向字符类型内存块的指针。您必须为其分配一定量的动态内存,然后使用strcpy()或手动将数据复制到其中。 C ++不支持直接输入。字符串实际上是包含其内部大小的对象。它们由该行业的专家设计,它们提供了直接输入和动态增长,就像内置功能一样。 string和cstring之间存在差异。 Cstring是char *。
答案 2 :(得分:1)
不,C ++字符串不是只是字符数组,它们是一个完整的类,通常会有很多额外的东西,超出字符数组提供的范围。