【发布时间】:2013-02-01 21:03:23
【问题描述】:
我一直试图找到string 的长度,它有一个chars 数组和strlen() 函数,但它不起作用。
我使用的代码是这样的:
string s[]={"a","b","c"};
int len = strlen(s.c_str());
它会产生以下错误:
"request for member âc_strâ in âwArrayâ, which is of non-class type"
但是当我之前像这样在strings 上使用过这个strlen() 函数时,它工作得很好:
fin.open("input.txt");
string tempStr;
getline(fin, tempStr,'\n');
int len = strlen(tempStr.c_str());
我在这里缺少什么?我知道我可以用
找到string s[] 的长度
int size = sizeof( s ) / sizeof( s[ 0 ] );
但是为什么我不能使用strlen()。有人可以解释发生了什么吗?
【问题讨论】:
-
s是一个数组,它没有c_str函数。 std::vector 是一个选项吗? -
您错过了
std::string不是std::string[]的事实。 -
@Billz 但它适用于 char 类型数组....????????????/
-
@n.m.那为什么它在 tempStr 上起作用。那也是一个字符串。
-
字符串不同于字符串数组。