C ++ Как преобразовать массив строк в массив символов - PullRequest
0 голосов
/ 12 октября 2019

в моей программе должно быть сохранено = 5 строковых значений - Simpsun GN120, Sonic Lux10, Ultimax G42, Antalpha A200 и Nickov N230, а затем произведет вычисление, которое создаст код для каждого значения. Код будет принимать первые 3 буквы и 3 последние буквы значения.

первый код из значения: Simpsun GN120

будет выглядеть так: Sim120

Моя самая большая проблема заключалась в том, что я не мог создать строковый массив, получая длину каждогозначение в массиве может привести к сбою программы, поэтому на данный момент я создал программу, которая будет выполнять эти вычисления, но только если строка не является массивом, если кто-то может дать мне несколько советов, как я мог бы улучшить свой код, чтобы превратить эту строку в массив

#include <iostream>
using namespace std;
int main()
{
    string str = "Simpsun GN120";
    int i;
    string productCode[5];


    for (i = 0; i < str.length(); i++)
    {
        if (i == 0 || i == 1 || i == 2)
        {
            productCode[0] += str[i];
        }
        if (i == str.length() - 1 || i == str.length() - 2 || i == str.length() - 3)
        {
            productCode[0] += str[i];
        }

    }
    cout << productCode[0];

}

Ответы [ 2 ]

1 голос
/ 12 октября 2019

Это просто с помощью строкового класса. Запустите цикл для выполнения productCode[i] = str[i].substr(0, 3) + str[i].substr(str[i].length() - 3);, и ваша работа завершена.

1 голос
/ 12 октября 2019

jignatius Большое спасибо за этот ответ!

using namespace std;
int main()
{
    string str[2] = { "Simpsun GN120", "Sonic Lux10" };
    int i;
    string productCode[5];

    for (int i = 0; i < 2; i++)
    {
        productCode[i] = str[i].substr(0, 3) + str[i].substr(str[i].length() - 3);
    }

    cout << productCode[0] << endl;
    cout << productCode[1];
}
...