我试图在不使用任何库函数的情况下获取字符串中的字符数。
我得到" 数组初始值设定项必须是初始化列表或文字字符串"错误。
using namespace std;
string stringLength(string myString) {
char string[] = myString.c_str();
while (string[i] != 0) {
//code to calculate length of char string[]
}
int main() {
string myString = "hello";
cout << stringLength(myString) << endl;
cout << myString << endl;
return 0;
}
答案 0 :(得分:2)
您可以使用一个而非两个成员函数来确定std::string
的长度:size()
和length()
。你可以使用它们:
int main() {
string myString = "hello";
cout << myString.length() << endl;
cout << myString << endl;
return 0;
}
答案 1 :(得分:0)
#include <string>
#include <iostream>
using namespace std;
size_t stringLength(string myString) {
size_t count = 0;
const char * pstr = myString.c_str();
while (pstr[count] != 0) {
//code to calculate length of char string[]
++count;
}
return count;
}
int main() {
string myString = "hello";
cout << stringLength(myString) << endl;
cout << myString << endl;
return 0;
}
答案 2 :(得分:0)
myString.c_str()返回指向string的指针。
const char* str = myString.c_str();
int length = 0;
while (*str != NULL) {
length++;
str++;
}