Как преобразовать string в char на c++?

Пользователь

от craig.emmerich , в категории: C/C++ , год назад

Как преобразовать string в char на c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от edyth , год назад

@craig.emmerich 

Для преобразования строки в массив символов (типа char) можно использовать метод c_str(). Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#include 
#include 

using namespace std;

int main() {
    string myString = "Hello, world!";
    const char* myCharArray = myString.c_str();
    cout << myCharArray << endl;

    return 0;
}


Output:

1
Hello, world!


Важно отметить, что массив символов, созданный таким образом, будет доступен только для чтения. Если нужно изменять символы в строке, следует использовать экземпляр char[].

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include 
#include 

using namespace std;

int main() {
    string myString = "Hello, world!";
    char myCharArray[myString.length() + 1];
    strcpy(myCharArray, myString.c_str());

    myCharArray[7] = 'W';
    cout << myCharArray << endl;

    return 0;
}


Output:

1
Hello, World!


Пользователь

от christine , 4 месяца назад

@craig.emmerich 

Преобразовать строку в символ типа char можно с помощью указателя на начало строки. Вот пример кода на C++, который демонстрирует это:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include <iostream>
#include <string>

int main() {
    std::string myString = "Hello, world!";
    
    // Преобразование строки в символ типа char
    const char* charPointer = myString.data(); // или myString.c_str()

    // Вывод символов
    for (size_t i = 0; i < myString.length(); ++i) {
        std::cout << charPointer[i] << std::endl;
    }

    return 0;
}


В этом примере charPointer будет указывать на первый символ строки myString. Последующие символы можно получить с помощью индексации указателя.