有什么办法可以将字符串转换为char []来做类似这样的工作吗?
问题描述:
我试图在不使用任何库函数的情况下获取字符串中的字符数。有什么办法可以将字符串转换为char []来做类似这样的工作吗?
我得到一个“数组初始化必须是一个初始化列表或文字字符串”错误。
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;
}
答
什么@Barry做的是正确的方式
但如果这是你想要什么,看看这个:
#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;
}
答
myString.c_str()返回指向字符串的指针。
const char* str = myString.c_str();
int length = 0;
while (*str != NULL) {
length++;
str++;
}
错误原因是您定义字符串的方式。 ''char string [] ='要求下一个标记是一个字符串文字('“嗨!我是一个字符串!”)或一个常量字符数组('{'H','i','!' ''''''','m','','a','','c','h','a','r','','a',' r','r','a','y','!'}') – user4581301