Преобразование строки в массив символов

C++C++Beginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабораторном задании мы покажем, как преобразовать строку в массив символов на C++. Метод c_str(), определенный в библиотеке string.h, используется для преобразования строки в массив символов.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/StandardLibraryGroup(["Standard Library"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp/BasicsGroup -.-> cpp/variables("Variables") cpp/BasicsGroup -.-> cpp/arrays("Arrays") cpp/BasicsGroup -.-> cpp/strings("Strings") cpp/ControlFlowGroup -.-> cpp/for_loop("For Loop") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") cpp/StandardLibraryGroup -.-> cpp/string_manipulation("String Manipulation") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/variables -.-> lab-96182{{"Преобразование строки в массив символов"}} cpp/arrays -.-> lab-96182{{"Преобразование строки в массив символов"}} cpp/strings -.-> lab-96182{{"Преобразование строки в массив символов"}} cpp/for_loop -.-> lab-96182{{"Преобразование строки в массив символов"}} cpp/output -.-> lab-96182{{"Преобразование строки в массив символов"}} cpp/user_input -.-> lab-96182{{"Преобразование строки в массив символов"}} cpp/string_manipulation -.-> lab-96182{{"Преобразование строки в массив символов"}} cpp/code_formatting -.-> lab-96182{{"Преобразование строки в массив символов"}} end

Подключение библиотек и определение пространства имен

Мы создадим новый файл с именем main.cpp в директории ~/project с помощью следующей команды:

touch ~/project/main.cpp

Сначала нам нужно подключить необходимые заголовочные файлы и определить пространство имен std, которое мы будем использовать.

#include <iostream>
#include <string.h>

using namespace std;

Объявление переменных и ввод строки

Мы объявляем переменную string и просим пользователя ввести строку без пробелов.

int main()
{
    string s;
    cout << "Enter a string without any space: ";
    cin >> s;
}

Создание массива символов из строки

Мы создаем массив символов из введенной строки с использованием функции strncpy. Оператор sizeof используется для определения размера массива.

char cArray[1024];
strncpy(cArray, s.c_str(), sizeof(cArray));

Инициализация элементов массива нулями

Для избежания появления мусорных значений в массиве мы инициализируем все элементы массива нулями с использованием следующего выражения.

cArray[sizeof(cArray) - 1] = 0;

Вывод элементов массива

Затем мы проходим по массиву в цикле, чтобы вывести все элементы.

for (int i = 0; cArray[i]!= 0; i++)
{
    cout << "cArray[ " << i << " ]: " << cArray[i] << endl;
}

Для компиляции и запуска программы используйте следующую команду в терминале:

g++ main.cpp -o main && ./main

Резюме

В этом практическом занятии мы узнали, как преобразовать строку в массив символов на C++. Метод c_str() используется для создания массива символов из введенной строки. Мы инициализировали все элементы массива нулями и затем прошли по массиву в цикле, чтобы вывести все его элементы.