在c++中
string str;
scanf("%s", str.c_str());
printf("%d", str.length());
输出结果始终为0,这是什么原因?
应该用什么方法来得到string的长度?
哪个大佬来指点指点我这个弱鸡,感谢!
在c++中
string str;
scanf("%s", str.c_str());
printf("%d", str.length());
输出结果始终为0,这是什么原因?
应该用什么方法来得到string的长度?
哪个大佬来指点指点我这个弱鸡,感谢!
string::c_str
指是一个常量指针,而不是一个缓冲区,只用于获取数据,不能用于接收数据。
你可以:std::cin >> str
或:char buf[100]; scanf("%s",buf);
之后再把缓冲区的内容传入你的string变量
记住不是所有的char*数据都可以用来接收数据的