有没有什么方法可以将字符串转换为char[]来实现这样的功能

Is there any way to convert a string to a char[] to make something like this work?

本文关键字:实现 功能 char 方法 什么 转换 字符串 有没有      更新时间:2023-10-16

我试图在不使用任何库函数的情况下获取字符串中的字符数。

我收到一个"数组初始值设定项必须是初始值设定值列表或文字字符串"错误。

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;
}

您可以使用两个成员函数来确定std::string的长度:size()length()。你可以直接使用它们:

int main() {
    string myString = "hello";
    cout << myString.length() << endl;
    cout << myString << endl;
    return 0;
}

如果你真的,真的坚持用老式的C方法,不要。但是,拉出内部字符指针的正确方法是通过c_str()data()

@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++;
}